Не может быть простой 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
, чтобы автоматически увеличивать идентификатор, когда я читал здесь Мне нужно.
Любые идеи?
Спасибо!
Ответы
Ответ 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')