一些列使用双引号,一些列在postgres中没有双引号

时间:2011-07-18 08:43:17

标签: php postgresql

有没有人知道为什么postgres中的某些列显示为双引号,而某些列在pgadmin III中没有任何引号。

只有当我用双引号给出列名时,我才能插入列的数据(带引号)。

当我尝试使用PDO将数据插入到具有两个列(带&无双引号)的表中时,我遇到了问题

1 个答案:

答案 0 :(得分:5)

有两个原因可以解释为什么你需要在PostgreSQL中围绕列名引用双引号。

  1. 如果保留字用作列名
  2. PostgreSQL区分大小写,除非提供双引号,否则所有对象都被视为小写。双引号告诉PostgreSQL使用给出的案例。
  3. 如果您创建表

    CREATE TABLE tt1 (
        id integer,
        "Order" integer
    );
    

    上述语句告诉PostgreSQL在这种情况下必须保存“Order”列。

    以下INSERT语句不起作用: -

    INSERT INTO tt1 (id, Order) VALUES (1, 1)
    INSERT INTO tt1 (id, "order") VALUES (2, 2)
    INSERT INTO tt1 (id, "OrDer") VALUES (3, 3)
    

    你必须得到正确的答案: -

    INSERT INTO tt1 (id, "Order") VALUES (1, 1)
    INSERT INTO tt1 (id, "Order") VALUES (2, 2)
    INSERT INTO tt1 (id, "Order") VALUES (3, 3)