Помимо других (правильных) ответов, необходимо указать, что:
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>
Некоторые библиотеки python, такие как numpy, должны быть собраны в системе, в которой они работают, из-за зависимостей сборки в системе - которые могут сильно различаться в зависимости от нескольких факторов. Невозможно заставить их работать, используя общий доступ через Dropbox, если все системы, использующие его, не идентичны той, где он был построен.