Ограничение NOT NULL
По умолчанию столбец может принимать значение NULL
.
Необязательное предложение NOT NULL
указывает, что столбцу не может быть присвоено значение NULL.
NOT NULL
По умолчанию столбец может принимать значение NULL
.
Необязательное предложение NOT NULL
указывает, что столбцу не может быть присвоено значение NULL.
Необязательное предложение DEFAULT
позволяет указать значение по умолчанию для столбца таблицы.Это значение будет помещено в столбец таблицы при выполнении оператора INSERT
, если значение не будет указано для этого столбца.В качестве значения по умолчанию может быть литерал совместимый по типу, неизвестное значение NULL
или контекстная переменная, тип которой совместим с типом столбца.Если значение по умолчанию явно не устанавливается, то подразумевается пустое значение, NULL
.Использование выражений в значении по умолчанию недопустимо.
Для определения столбца, можно воспользоваться ранее описанным доменом.Если определение столбца основано на домене, оно может включать новое значение по умолчанию, дополнительные ограничения CHECK
, предложение COLLATE
, которые перекрывают значения указанные при определении домена.Определение такого столбца может включать дополнительные ограничения столбца, например NOT NULL, если домен его ещё не содержит.
Important
|
Следует обратить внимание на то, что если в определении домена было указано |
Столбец идентификации представляет собой столбец, связанный с внутренним генератором последовательностей.Столбцы идентификации могут быть определены либо с помощью предложения GENERATED BY DEFAULT AS IDENTITY
, либо предложения GENERATED ALWAYS AS IDENTITY
.
Если столбец идентификации задан как GENERATED BY DEFAULT
, то его значение будет увеличиваться и использовано как значение по умолчанию при каждой вставке, только в том случае, если значение этого столбца не задано явно.
Чтобы использовать сгенерированное по умолчанию значение, необходимо либо указать ключевое слово DEFAULT
при вставке в столбец идентификации, или просто не упоминать столбец идентификации в списке столбцов для вставки.В противном случае будет использовано указанное вами значение.
GENERATED BY DEFAULT AS IDENTITY
CREATE TABLE greetings (
id INT GENERATED BY DEFAULT AS IDENTITY,
name CHAR(50));
-- specify value "1":
INSERT INTO greetings VALUES (1, 'hi');
-- use generated default
INSERT INTO greetings VALUES (DEFAULT, 'salut');
-- use generated default
INSERT INTO greetings(ch) VALUES ('bonjour');
Note
|
Это поведение может быть изменено в операторе INSERT если указана директива |
Если столбец идентификации задан как GENERATED ALWAYS
, то его значение будет увеличиваться при каждой вставке.При попытке явно присвоить значение столбца идентификации в операторе INSERT
, будет выдано сообщение об ошибке.В операторе INSERT
вы можете указать ключевое слово DEFAULT
вместо значения для столбца идентификации.
create table greetings (
id INT GENERATED ALWAYS AS IDENTITY,
name CHAR(50));
INSERT INTO greetings VALUES (DEFAULT, 'hello');
INSERT INTO greetings(ch) VALUES ('bonjour');
Note
|
Это поведение может быть изменено в операторе |
Необязательное предложение START WITH
позволяет указать начальное значение отличное от нуля.Предложение INCREMENT [BY]
устанавливает значение приращения.Значение приращения должно быть отлично от 0.По умолчанию значение приращения равно 1.
Тип данных столбца идентификации должен быть целым числом с нулевым масштабом. Допустимыми типами являются SMALLINT
, INTEGER
, BIGINT
, NUMERIC(x,0)
и DECIMAL(x,0)
;
Идентификационный столбец не может иметь DEFAULT
и COMPUTED
значений.
Note
|
|