pg sql insert 时表名什么时候需要加双引号?

作者站长头像
站长
· 阅读数 16
insert into user(nickname, phone, password) values 
('usr3', 13333333334, 1234);
-- 上面是不能执行的
|| 加了双引号才能执行是为什么,单引号都是不能执行的v
insert into "user" (nickname, phone, password) values 
('usr3', 13333333334, 1234);
回复
1个回答
avatar
test
2024-07-18

个人也好奇过这个东西,粗糙记录过一点:

在 MySQL 和 SQL Server 当中暂未发现明显差别,但若是在 PostgreSQL,明显区分了单双引号,对于别名,不可使用单引号包裹。

下列语句不可在 PostgreSQL 当中执行
SELECT 
    'bob' AS 'my name',
    10 AS 'my age';

因此,对于别名来说,最好使用双引号进行包裹。这样的兼容性会更好些。

PostgreSQL 是非常正经的数据库,很多方面都要比 MySQL 与 SQL Server 更严格,比如说字符串统一使用单引号,包裹别名使用双引号。

user 属于关键字,因此需要进行包裹(但我不知道怎么使用专业术语描述)。

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