我们可以在PostgreSQL中使用“name”作为列名吗?

时间:2018-05-09 05:06:43

标签: postgresql ddl create-table

我们可以在PostgreSQL中使用“name”作为列名吗?

我已经尝试过,表格成功创建了。当我对表或表数据执行任何操作时会出现任何错误吗?

名称是保留关键字吗?

更新:试过这个

select * from pg_get_keywords()

发现“名字”是无保留的。还想确认我是否可以使用该名称?

1 个答案:

答案 0 :(得分:1)

https://www.postgresql.org/docs/current/static/datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE

  

"名称"是对象名称的内部类型

是的 - 你可以:

t=# create table "b@dPract!c3" ("name" text, "date" timestamptz);
CREATE TABLE
t=# insert into "b@dPract!c3" values('wrong',now());
INSERT 0 1
t=# select * from "b@dPract!c3";
 name  |             date
-------+-------------------------------
 wrong | 2018-05-09 08:38:53.612212+01
(1 row)

你应该这样做吗?当然不是!使用数据类型名称命名列很容易,但实际上很糟糕