Я пытаюсь выполнить простую вставку в таблицу postgres, но получаю сообщение об ошибке, что значение, которое я пытаюсь вставить, интерпретируется как имя столбца
INSERT INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT, "auto dealer")
Где id установлен как первичный ключ и автоматически увеличивается, а не null. Это те поля, которые я отмечал, когда настраивал таблицу в phpPgAdmin.
Однако я получаю эту ошибку:
ERROR: ERROR: column "auto dealer" does not exist
Query = INSERT
INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT,
"auto dealer")
Я заключил имя своей таблицы в двойные кавычки, как я читал здесь .
И используется DEFAULT
для автоматического увеличения идентификатора, как я читал здесь я должен.
Есть идеи? Благодаря!
sql
postgresql
1252748
источник
источник
ERROR: ERROR: syntax error at or near "'imageTagBusinessMainCategory'" Position: 13
Ответы:
'auto dealer'
Вместо этого используйте . PostgreSQL интерпретирует"
как кавычки для идентификаторов,'
как кавычки для строк.Также:
Если это новый проект, просто не используйте таблицы со смешанным регистром; позже это станет источником разочарования. Вместо того, чтобы иметь возможность использовать любой регистр в своих операторах SQL, вы должны указать имя идентификатора в кавычках и указать правильный регистр.
Нет необходимости указывать
id
/DEFAULT
, вы просите его сделать то, что он уже сделал. Я не встречал СУБД, которая требует, чтобы вы включилиcolumnName
/DEFAULT
если вы хотите, чтобы она поместила значение по умолчанию в столбец, поэтому я не думаю, что эта дополнительная пара KV сделает то, что происходит, более понятным для тех, кто позже читает ваш код .источник
ERROR: ERROR: column "businessmaincategory" of relation "imageTagBusinessMainCategory" does not exist
INSERT INTO "imageTagBusinessMainCategory" ("businessMainCategory") VALUES ('auto dealer')
РЕДАКТИРОВАТЬ: добавлены двойные кавычки вокруг имени столбца
источник
ERROR: ERROR: column "businessmaincategory" of relation "imageTagBusinessMainCategory" does not exist
thishasareallylongname
может быть доступна с помощьюselect * from thisHasAReallyLongName
.Postgres, Oracle и т. Д. Ожидают, что имя столбца будет в кавычках, если они имеют смешанный регистр. Поэтому либо создайте соглашение о всех маленьких или всех заглавных буквах для столбцов таблицы, либо используйте кавычки, как предложил Дэвид Фабер.
INSERT INTO "imageTagBusinessMainCategory" ("businessMainCategory") VALUES ('auto dealer')
источник