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

i07*_*707 2 php postgresql

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

只有当我用双引号给出列名时,我能够为列(带引号)插入数据.

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

Imr*_*aan 5

在PostgreSQL中需要围绕列名称使用双引号有两个原因.

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

如果您创建一个表

CREATE TABLE tt1 (
    id integer,
    "Order" integer
);
Run Code Online (Sandbox Code Playgroud)

上面的语句告诉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)
Run Code Online (Sandbox Code Playgroud)

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

INSERT INTO tt1 (id, "Order") VALUES (1, 1)
INSERT INTO tt1 (id, "Order") VALUES (2, 2)
INSERT INTO tt1 (id, "Order") VALUES (3, 3)
Run Code Online (Sandbox Code Playgroud)