别名为的INSERT在PostgreSQL上不起作用

别名为的INSERT在PostgreSQL上不起作用,postgresql,sql-insert,postgresql-9.3,Postgresql,Sql Insert,Postgresql 9.3,PostgreSQL上的SQL查询: insert into TOKEPOOLAMT (TOKEPOOLAMT.TOKEPOOLAMTID,TOKEPOOLAMT.TOKERULEID) values (151, 176); 给出错误: 但是: 工作正常 有人能解释一下为什么insert语句中带有列的别名不起作用吗?这里没有涉及别名。您的错误是,INSERT命令的列列表中的列名不能是表限定的@pozs已经提供了手册中的配件报价 我不认为这是一个案件的问题。我试过两个案子 这没有抓住重点。在Po

PostgreSQL上的SQL查询:

insert into TOKEPOOLAMT (TOKEPOOLAMT.TOKEPOOLAMTID,TOKEPOOLAMT.TOKERULEID)
values (151, 176);
给出错误:

但是:

工作正常


有人能解释一下为什么insert语句中带有列的别名不起作用吗?

这里没有涉及别名。您的错误是,
INSERT
命令的列列表中的列名不能是表限定的@pozs已经提供了手册中的配件报价


我不认为这是一个案件的问题。我试过两个案子

这没有抓住重点。在Postgres中,标识符折叠为小写,除非双引号。如果在创建时双引号引用了一个名称,则保留了区分大小写的拼写,并且在对象的剩余生命周期中需要双引号-除非它是一个合法的小写名称,否则引号不会产生任何影响。详情:


    • 此处不涉及别名。您的错误是,
      INSERT
      命令的列列表中的列名不能是表限定的@pozs已经提供了手册中的配件报价


      我不认为这是一个案件的问题。我试过两个案子

      这没有抓住重点。在Postgres中,标识符折叠为小写,除非双引号。如果在创建时双引号引用了一个名称,则保留了区分大小写的拼写,并且在对象的剩余生命周期中需要双引号-除非它是一个合法的小写名称,否则引号不会产生任何影响。详情:


        • 此处不涉及别名。您的错误是,
          INSERT
          命令的列列表中的列名不能是表限定的@pozs已经提供了手册中的配件报价


          我不认为这是一个案件的问题。我试过两个案子

          这没有抓住重点。在Postgres中,标识符折叠为小写,除非双引号。如果在创建时双引号引用了一个名称,则保留了区分大小写的拼写,并且在对象的剩余生命周期中需要双引号-除非它是一个合法的小写名称,否则引号不会产生任何影响。详情:


            • 此处不涉及别名。您的错误是,
              INSERT
              命令的列列表中的列名不能是表限定的@pozs已经提供了手册中的配件报价


              我不认为这是一个案件的问题。我试过两个案子

              这没有抓住重点。在Postgres中,标识符折叠为小写,除非双引号。如果在创建时双引号引用了一个名称,则保留了区分大小写的拼写,并且在对象的剩余生命周期中需要双引号-除非它是一个合法的小写名称,否则引号不会产生任何影响。详情:


              看起来像是大小写对象名称的问题。您是如何创建表及其列的?建议:只使用小写。我不认为这是大小写的问题。我试过两个案子。第一个查询不起作用,但第二个没有别名的查询起作用。
              TOKEPOOLAMTID
              不是别名,这是您的列名。您首先尝试的是用表名限定列名(表名不仅仅是一个简单的列名,但仍然不是别名),但这根本不是必需的,事实上根本不受支持。column表中由table_name命名的列的名称。如果需要,可以使用子字段名或数组下标限定列名。(只在复合列的某些字段中插入,其他字段为空。)@pozs:我同意您的意见,而且postgresql不支持带有TableName.ColumnName的insert语句也是正确的,因为它没有找到限定的列名。看起来像是大小写对象名的问题。您是如何创建表及其列的?建议:只使用小写。我不认为这是大小写的问题。我试过两个案子。第一个查询不起作用,但第二个没有别名的查询起作用。
              TOKEPOOLAMTID
              不是别名,这是您的列名。您首先尝试的是用表名限定列名(表名不仅仅是一个简单的列名,但仍然不是别名),但这根本不是必需的,事实上根本不受支持。column表中由table_name命名的列的名称。如果需要,可以使用子字段名或数组下标限定列名。(只在复合列的某些字段中插入,其他字段为空。)@pozs:我同意您的意见,而且postgresql不支持带有TableName.ColumnName的insert语句也是正确的,因为它没有找到限定的列名。看起来像是大小写对象名的问题。您是如何创建表及其列的?建议:只使用小写。我不认为这是大小写的问题。我试过两个案子。第一个查询不起作用,但第二个没有别名的查询起作用。
              TOKEPOOLAMTID
              不是别名,这是您的列名。您首先尝试的是用表名限定列名(表名不仅仅是一个简单的列名,但仍然不是别名),但这根本不是必需的,事实上根本不受支持。column表中由table_name命名的列的名称。如果需要,可以使用子字段名或数组下标限定列名。(只在复合列的某些字段中插入,其他字段为空。)@pozs:我同意您的意见,而且postgresql不支持带有TableName.ColumnName的insert语句也是正确的,因为它没有找到限定的列名。看起来像是大小写对象名的问题。您是如何创建表及其列的?建议:只使用小写。我不认为这是大小写的问题。我试过了
              com.edb.util.PSQLException:
              ERROR: column "tokepoolamt" of relation "tokepoolamt" does not exist
              
              insert into TOKEPOOLAMT (TOKEPOOLAMTID,TOKERULEID) values (151, 176);