是这个意思:在pgAdmin III新建表,输入的表名为TestTable,完成后,它自动生成的SQL:
-- Table: "TestTable"-- DROP TABLE "TestTable";CREATE TABLE "TestTable"
(
  aaa char(5)

WITHOUT OIDS;
ALTER TABLE "TestTable" OWNER TO postgres;即是表名带双引号的,我在程序中Select时也必须对表名加双引号

解决方案 »

  1.   

    你的表名不要用大小写结合的,这样生成的表因为带了引号(表名不包括引号的)所以实际中是区分大小写的(表名就是TestTable),不带引号的话统一按小写的(表名testtable),访问有大小写区分的表名只能带上引号才能访问
      

  2.   

    果然是这样,我全部用小写,生的表名就对了,SQL如下:
    -- Table: reason-- DROP TABLE reason;CREATE TABLE reason
    (
      "Code" varchar(3) NOT NULL,
      "Name" varchar(20) NOT NULL,
      CONSTRAINT "PK_reason" PRIMARY KEY ("Code")

    WITHOUT OIDS;
    ALTER TABLE reason OWNER TO postgres;
    GRANT ALL ON TABLE reason TO postgres;从上面看出,不光是表名,列名、约束名也是这样的
      

  3.   

    在psql中Create Table时用混合大小写的表名、列名、约束名都会自动转换为小写