Подтвердить что ты не робот

Не может быть простой PostgreSQL вставить в работу

Я пытаюсь сделать простую вставку в таблицу postgres, но получаю ошибку, которую значение, которое я пытаюсь вставить, интерпретируется как имя столбца

INSERT INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT, "auto dealer")

Если идентификатор установлен как первичный ключ, а auto increment, а не null. Это те коробки, которые я отметил, когда я настраивал таблицу в phpPgAdmin.

Я получаю эту ошибку:

ERROR: ERROR: column "auto dealer" does not exist
Query = INSERT
INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT,
"auto dealer")

Я поместил имя моей таблицы в двойные кавычки, так как я прочитал здесь.

И использовал DEFAULT, чтобы автоматически увеличивать идентификатор, когда я читал здесь Мне нужно.

Любые идеи? Спасибо!

4b9b3361

Ответ 1

Используйте 'auto dealer' вместо этого. PostgreSQL интерпретирует " как кавычки для идентификаторов, ' как кавычки для строк.

также:

  • Если это новый проект, просто не используйте смешанные таблицы событий; это источник разочарования позже. Вместо того, чтобы использовать любой случай в ваших операторов SQL, вы должны указывать имя идентификатора и получать дело правильное.

  • Нет необходимости указывать id/DEFAULT, вы попросив его сделать то, что он уже сделал бы. Я не встречал СУБД для которого требуется включить columnName/DEFAULT, если вы хотите, чтобы он поместите значение по умолчанию в столбец, поэтому я не думаю, что этот дополнительный KV пара собирается сделать то, что происходит яснее любому, кто читает ваш код позже.

Ответ 2

INSERT INTO "imageTagBusinessMainCategory"
("businessMainCategory")
VALUES
('auto dealer')

EDIT: добавлены двойные кавычки вокруг имени столбца

Ответ 3

Postgres, Oracle и т.д. ожидают, что имя столбца будет в кавычках, если у них смешанный случай. Поэтому либо создайте соглашение о всех маленьких или всех шапках для столбцов таблицы или используйте кавычки, как предложил Дэвид Фабер

INSERT INTO "imageTagBusinessMainCategory"
("businessMainCategory")
VALUES
('auto dealer')