【问题标题】:POSTGRESQL,subquery in FROM must have an aliasPOSTGRESQL,FROM 中的子查询必须有别名
【发布时间】:2017-12-29 14:49:12
【问题描述】:
CREATE OR REPLACE FUNCTION sp_insert_nike_mapping_code ( shopId bigint ) RETURNS VOID AS $body$
BEGIN

    insert into temp_t_so_sales_order_push(so_code,seq)
   SELECT so_code,nextval('s_t_so_sales_order_push_code') from (
   SELECT so_code from t_so_sales_order_push where sync_status = 0 group by so_code
   );

   update t_so_sales_order_push pu
   set code = (
       SELECT temp.seq from temp_t_so_sales_order_push temp
       where temp.so_code = pu.so_code and pu.shop_id = shopId and pu.sync_status = 0
   )
   where exists(
          SELECT 1 from temp_t_so_sales_order_push temp
          where temp.so_code = pu.so_code and pu.shop_id = shopId and pu.sync_status = 0
   );
END
$body$
LANGUAGE PLPGSQL
SECURITY DEFINER
;

当我执行上述代码时,出现语法错误:FROM 中的子查询必须有别名。 [Err] 错误:FROM 中的子查询必须有别名 第 5 行:...选择 so_code,nextval('s_t_so_sales_order_push_code') 来自 ( ^ 提示:例如,FROM (SELECT ...) [AS] foo。

有人帮我吗?

【问题讨论】:

  • 在插入语句中,您在 ; 之前缺少别名写任何有效的名字,比如 valid_name;

标签: postgresql


【解决方案1】:
insert into temp_t_so_sales_order_push(so_code,seq)
   SELECT t.so_code,nextval('s_t_so_sales_order_push_code') from (
   SELECT so_code from t_so_sales_order_push where sync_status = 0 group by so_code
   ) as t;

【讨论】:

    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多