Правильный вариант для того, чтобы при вставке значения в столбец evencolumn по умолчанию бралось следующее значение из последовательности evensequence — это использовать конструкцию с DEFAULT и функцией nextval:
Была создана специальная последовательность, генерирующая только четные числа, с названием even_sequence. Что нужно подставить на место пропуска [...], чтобы в случае, если значение even_column не было указано при вставке, значение бралось из even_sequence?
Правильный вариант для того, чтобы при вставке значения в столбец evencolumn по умолчанию бралось следующее значение из последовательности evensequence — это использовать конструкцию с DEFAULT и функцией nextval:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Была создана специальная последовательность, генерирующая только четные числа, с названием even_sequence. Что нужно подставить на место пропуска [...], чтобы в случае, если значение even_column не было указано при вставке, значение бралось из even_sequence?
create table some_table( even_column [...] );
integer computed as nextval('even_sequence')
integer generated always as identity (start with 2 increment by 2)
integer default nextval('even_sequence')
integer unique default nextval('even_sequence')
integer generated by even_sequence’
Ответ
Правильный вариант для того, чтобы при вставке значения в столбец even_column по умолчанию бралось следующее значение из последовательности even_sequence — это использовать конструкцию с DEFAULT и функцией nextval:
create table some_table(
even_column integer default nextval('even_sequence')
);
Объяснение:
integer computed as nextval('even_sequence')— синтаксис не поддерживается в PostgreSQL.integer generated always as identity (start with 2 increment by 2)— создаёт собственную последовательность, но не связан с even_sequence.integer unique default nextval('even_sequence')— тоже корректно, но уникальность зависит от требований, не обязательна для генерации.integer generated by even_sequence— такого синтаксиса нет.
Итого, чтобы использовать уже созданную последовательность even_sequence для значения по умолчанию, нужно указать:
integer default nextval('even_sequence')