我在 postgreSQL 中有一个表projects
,如下所示
id. project_name. col3. col4
1111. test. ... ...
只有当 id
不存在时,我才想为新的 id
插入一个新行。所以我在下面写了查询
INSERT INTO projects(id, project_name)
VALUES("1234", "Test_Project")
ON CONFLICT (id)
DO NOTHING
但是它抛出一个错误
Query 1 ERROR: ERROR: column "1234" does not exist
LINE 2: VALUES("1234", "Test_Project_...
请提出建议。
** 编辑**
表中的 id
列是一个 uuid 并且不是唯一的。可以有多个具有相同 ID 的行。根据专线小巴的建议,我尝试了以下
INSERT INTO projects(id, project_name)
VALUES('1234', 'Test_Project')
ON CONFLICT (create unique index on projects(id))
DO NOTHING
我得到以下错误
Query 1 ERROR: ERROR: syntax error at or near "create"
LINE 3: ON CONFLICT (create unique index on projects(id...
我是新手,所以我肯定遗漏了一些明显的东西。
最佳答案
对文字字符串使用单引号。双引号代表标识符(例如列名或表名)——因此出现错误:
INSERT INTO projects(id, project_name)
VALUES('1234', 'Test_Project')
ON CONFLICT (id)
DO NOTHING
也就是说,我怀疑 id
是 integer
数据类型。如果是这样,根本不要引用它:
INSERT INTO projects(id, project_name)
VALUES(1234, 'Test_Project')
ON CONFLICT (id)
DO NOTHING
关于sql - PostgreSQL ERROR 列不存在指的是列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64216805/