我们可以使用;名称“;作为PostgreSQL中的列名?

我们可以使用;名称“;作为PostgreSQL中的列名?,postgresql,ddl,create-table,Postgresql,Ddl,Create Table,我们可以在PostgreSQL中使用“name”作为列名吗 我已经尝试过了,并且成功地创建了表。当我对表或表数据执行任何操作时,它是否会出错 name是保留关键字吗 更新:尝试了这个 select * from pg_get_keywords() 并发现“name”是无保留的。还想确认我是否可以使用该名称吗? “名称”是对象名称的内部类型 因此,是的-您可以: t=# create table "b@dPract!c3" ("name" text, "date" timestamptz); C

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

我已经尝试过了,并且成功地创建了表。当我对表或表数据执行任何操作时,它是否会出错

name是保留关键字吗

更新:尝试了这个

select * from pg_get_keywords()
并发现“name”是无保留的。还想确认我是否可以使用该名称吗?

“名称”是对象名称的内部类型

因此,是的-您可以:

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)
你应该这样做吗?当然不是使用数据类型名称命名列很容易,但实际操作很糟糕

“名称”是对象名称的内部类型

因此,是的-您可以:

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)

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

我想您已经回答了自己的问题。
NAME
不是保留关键字。但如果它出现在该列表中,您可能仍然不应该使用它。我想您已经回答了自己的问题。
NAME
不是根据列表保留的关键字。但如果它出现在列表上,你可能仍然不应该使用它。我甚至会说,任何需要引用的名字都是最好避免的。这使得使用更加困难+1我甚至会说任何需要引用的名字都是最好避免的。这使得使用更加困难+1.