pg sql insert 时表名什么时候需要加双引号?
insert into user(nickname, phone, password) values
('usr3', 13333333334, 1234);
-- 上面是不能执行的
|| 加了双引号才能执行是为什么,单引号都是不能执行的v
insert into "user" (nickname, phone, password) values
('usr3', 13333333334, 1234);
回复
1个回答

test
2024-07-18
个人也好奇过这个东西,粗糙记录过一点:
在 MySQL 和 SQL Server 当中暂未发现明显差别,但若是在 PostgreSQL,明显区分了单双引号,对于别名,不可使用单引号包裹。
下列语句不可在 PostgreSQL 当中执行SELECT 'bob' AS 'my name', 10 AS 'my age';
因此,对于别名来说,最好使用双引号进行包裹。这样的兼容性会更好些。
PostgreSQL 是非常正经的数据库,很多方面都要比 MySQL 与 SQL Server 更严格,比如说字符串统一使用单引号,包裹别名使用双引号。
user
属于关键字,因此需要进行包裹(但我不知道怎么使用专业术语描述)。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容