#sql #postgresql-12
#sql #postgresql-12
Вопрос:
Я пробовал использовать SERIAL
и GENERATED ALWAYS AS IDENTITY
, но всегда получал ошибку при попытке вставить в любую таблицу, в которой они используются.
Пример:
CREATE TABLE foo ( id SERIAL NOT NULL PRIMARY KEY, name VARCHAR(255) NOT NULL ); CREATE TABLE bar ( id INT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY, name VARCHAR(255) NOT NULL ); INSERT INTO foo VALUES ('JOHN'); INSERT INTO bar VALUES ('JANE');
Я бы получил invalid input syntax for type integer: "John"
при вставке в foo и invalid input syntax for type integer: "Jane"
при вставке в панель. Насколько я знаю, он должен автоматически заполнять «идентификатор», начиная с 1, и требовать только «имя» из INSERT INTO
инструкции.
Я что-то сделал не так?
Комментарии:
1. ВСТАВИТЬ В строку(имя) ЗНАЧЕНИЯ («ДЖЕЙН»);
2. ^— Это или
INSERT INTO foo VALUES(DEFAULT, 'JOHN')
3. Спасибо! Не могу поверить, что я забыл что-то подобное…