Вставить строку в таблицу Postgresql только со значениями по умолчанию - PullRequest
0 голосов
/ 21 сентября 2018

Вопрос: Есть ли способ вставить строку в таблицу PostgreSQL, используя значения по умолчанию для всех столбцов без указания имени столбца?

Фон: ЕслиУ меня есть таблица с двумя столбцами, которые имеют значения по умолчанию (или просто принимают NULL), я могу опустить имя столбца при вставке строки, если я хочу, чтобы значение для этого столбца было значением по умолчанию.Например:

CREATE TABLE test_table ( column1 TEXT, column2 TEXT );

Я могу вставить в таблицу, указав только значение для column1 или column2, а в отсутствующий столбец будет добавлено значение по умолчанию (в данном случае NULL):

INSERT INTO test_table (column1) VALUES ('foo');
INSERT INTO test_table (column2) VALUES ('bar');

Выше приведено две строки: [('foo', NULL), (NULL, 'bar')].Однако, если я хочу использовать значение по умолчанию для обоих столбцов, кажется, что мне нужно указать хотя бы одно имя столбца и явно присвоить ему значение по умолчанию.Следующие команды являются законными:

INSERT INTO test_table (column1) VALUES (DEFAULT);
INSERT INTO test_table (column2) VALUES (DEFAULT);
INSERT INTO test_table (column1, column2) VALUES (DEFAULT, DEFAULT);

Мне не удалось создать допустимую команду, которая позволила бы мне опустить все имена столбцов.Все следующие попытки незаконны:

INSERT INTO test_table;
INSERT INTO test_table () VALUES ();

Есть ли способ сделать это или это явно запрещено?Я не смог найти никакой документации для такого случая.Спасибо!

1 Ответ

0 голосов
/ 21 сентября 2018

Я обнаружил, что для этого конкретного варианта использования существует специальный синтаксис:

INSERT INTO test_table DEFAULT VALUES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...