CREATE TABLE在单个列中包含多个单词

时间:2015-11-03 18:37:30

标签: postgresql

我可以创建一个包含列的单个名称的表,例如:

CREATE TABLE testTable 
(
    Name text,
    Age int
)

如何创建包含多个单词的单个列? E.g:

CREATE TABLE testTable 
(
    Person Name text,
    Person Age int
)

当我使用它时,它给了我错误。无法在任何地方找到解决方案。

2 个答案:

答案 0 :(得分:3)

使用"引用列名:

CREATE TABLE testTable (
"Person Name" text,
"Person Age" int);

SqlFiddleDemo

<强> Quoted identifiers

  

还有第二种标识符:分隔标识符或带引号的标识符。它是通过在双引号(“)中包含任意字符序列而形成的。

     

带引号的标识符可以包含除字符外的任何字符   代码为零。 (要包含双引号,请写两个双引号。)   这允许构造否则将构造表或列名称   不可能,,例如包含空格或&符号。该   长度限制仍然适用。

答案 1 :(得分:1)

可以引用(")这些名称来强制数据库执行此操作。在实践中,正如一些评论中所述,这非常令人讨厌并且没有效果。如果您这样做,那么每个时间您需要引用此列,您将不得不

  • 用双引号引用它
  • 完全匹配其案例

所以这个:

SELECT testTable."person name" FROM testTable

会抛出错误,因为我没有大写pn

每次引用时,这都会导致浪费时间查找名称的确切格式。

更常见,更简单的解决方案是简单地使用下划线

CREATE TABLE test_table (
    person_name text,
    person_age int
)

我,我相信我们这个行业的大部分人,通常会认为包含空格的名称(或任何其他需要我引用名称的字符)作为缺乏经验或缺乏知识的标志。