首页 > 解决方案 > PostgreSQL INSERT INTO 返回错误:列“***”不存在

问题描述

我想在"India", "Aditya Birla Capital Ltd", "INE674K01013", "INR", "ADTB","Aditya Birla Capital"table中插入一行shares."shareNames"。这是postgresql代码:

INSERT INTO shares."shareNames" ("country", "full_name", "isin_code", "currency", "symbol", "stock_name") 
VALUES ("India", "Aditya Birla Capital Ltd", "INE674K01013", "INR", "ADTB","Aditya Birla Capital")
RETURNING *;

我所期望的

我预计shares."shareNames"会有这样的一行:

country|full_name               |isin_code   |currency|symbol|stock_name 
India  |Aditya Birla Capital Ltd|INE674K01013|INR     |ADTB  |Aditya Birla Capital

实际结果

反而:

ERROR:  column "India" does not exist
LINE 3: VALUES ("India", "Aditya Birla Capital Ltd",
                ^
SQL state: 42703
Character: 125

请求:请帮我解决这个问题!

标签: postgresqlsql-insertstring-constant

解决方案


在 PostgreSQL 中,双引号仅用于数据库实体名称,如表、列名。对于转义字符串,请使用单引号,例如:

INSERT INTO shares."shareNames" (
    "country", "full_name", "isin_code", "currency", "symbol", "stock_name"
) VALUES (
   'India', 'Aditya Birla Capital Ltd', 'INE674K01013', 'INR', 'ADTB', 'Aditya Birla Capital'
)
RETURNING *;

推荐阅读