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

insert into user(nickname, phone, password) values 
('usr3', 13333333334, 1234);
-- 上面是不能执行的
|| 加了双引号才能执行是为什么,单引号都是不能执行的
v
insert into "user" (nickname, phone, password) values 
('usr3', 13333333334, 1234);
阅读 3k
2 个回答

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

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进