我正在尝试对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")
我把我的表名用双引号括起来,因为我读过here我应该这样做。
并使用DEFAULT
自动增加ID,因为我已阅读here我应该这样做。
有什么想法吗? 谢谢!
答案 0 :(得分:114)
请改用'auto dealer'
。 PostgreSQL将"
解释为标识符的引号,'
作为字符串的引号。
此外:
如果这是一个新项目,请不要使用混合案例表;它是一个 后来沮丧的根源。而不是能够使用任何案例 在您的SQL语句中,您必须引用标识符名称并获取 案件正确。
您无需指定id
/ DEFAULT
要求它做已经做过的事情。我还没有遇到过DBMS
如果您愿意,则需要包含columnName
/ DEFAULT
把默认值放在列中,所以我不认为这个额外的KV
对将使任何人阅读更清楚
你的代码稍后。
答案 1 :(得分:8)
INSERT INTO "imageTagBusinessMainCategory"
("businessMainCategory")
VALUES
('auto dealer')
编辑:在列名称
周围添加了双引号答案 2 :(得分:3)
Postgres,Oracle等期望列名称如果它们具有混合大小写,则为引号。因此,要么为表格列创建所有小型或全部大写的约定,要么使用引号作为David Faber建议
INSERT INTO "imageTagBusinessMainCategory"
("businessMainCategory")
VALUES
('auto dealer')
答案 3 :(得分:0)
就我而言,我不得不将列名从 camelCase 'isAdmin'
更改为 snake_case 'is_admin'
。