一尘不染

无法使简单的PostgreSQL插入工作

sql

我试图在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按照我在这里阅读的方法自动增加ID 。

有任何想法吗?谢谢!


阅读 143

收藏
2021-03-17

共1个答案

一尘不染

使用'auto dealer'代替。PostgreSQL解释"为标识符的'引号和字符串的引号。

还:

  • 如果这是一个新项目,那就不要使用大小写混合的表格;这是以后沮丧的原因。不能在SQL语句中使用任何大小写,必须同时引用标识符名称并正确区分大小写。

  • 不需要指定id/ DEFAULT,而只是要求它执行本来应该做的事情。我还没有遇到一个DBMS,该DBMS要求您包括columnName/DEFAULT如果希望它在列中放入默认值,所以我认为这多余的KV对不会使以后阅读您的代码的人更清楚。

2021-03-17