Общий виртуал, некоторые библиотеки видны, некоторые нет

Помимо других (правильных) ответов, необходимо указать, что:

  • с NOT DEFERRABLE каждая строка проверяется со временем вставки / обновления
  • с DEFERRABLE ( в настоящее время IMMEDIATE) все строки проверяются в конце вставки / обновления
  • с DEFERRABLE (в настоящее время DEFERRED) все строки проверяются в конце транзакции

So неверно сказать, что ограничение DEFERRABLE действует как NOT DEFERRABLE, когда оно установлено в IMMEDIATE.


Давайте рассмотрим эту разницу:

CREATE TABLE example(
    row integer NOT NULL,
    col integer NOT NULL,
    UNIQUE (row, col) DEFERRABLE INITIALLY IMMEDIATE
);

INSERT INTO example (row, col) VALUES (1,1),(2,2),(3,3);

UPDATE example SET row = row + 1, col = col + 1;

SELECT * FROM example;

Это правильно выходы:

Но если мы удалим инструкцию DEFERRABLE INITIALLY IMMEDIATE,

ОШИБКА: дублирующее значение ключа нарушает уникальные constraint "example_row_col_key" DETAIL: Key ("row", col) = (2, 2) уже существует. ********** Ошибка **********

ОШИБКА: дублирующее значение ключа нарушает уникальное ограничение "example_row_col_key" Состояние SQL: 23505 Detail: Key ("row" , col) = (2, 2).

blockquote>

ADDENDUM (12 октября 2017 г.)

Это поведение действительно документально здесь , раздел «Совместимость»:

Кроме того, PostgreSQL проверяет неотменяемые ограничения уникальности сразу, а не в конце инструкции, как предполагает стандарт.

blockquote>

0
задан Brian Postow 18 March 2019 в 18:07
поделиться

1 ответ

Некоторые библиотеки python, такие как numpy, должны быть собраны в системе, в которой они работают, из-за зависимостей сборки в системе - которые могут сильно различаться в зависимости от нескольких факторов. Невозможно заставить их работать, используя общий доступ через Dropbox, если все системы, использующие его, не идентичны той, где он был построен.

0
ответ дан Jeechu Deka 18 March 2019 в 18:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: