【问题标题】:MARIA DB INSERT SELECT ON DUPLICATE KEY UPDATEMARIADB 在重复键更新时插入选择
【发布时间】:2022-01-03 05:10:12
【问题描述】:

我正在尝试运行此查询:

INSERT IGNORE INTO obras_analisis (concepto, obra, fecha, importe, idcon, af, ordenaf, porcentaje) 
(SELECT '(CD) COSTO DIRECTO',obra, now(), sum(importe) foo, idcon,1, 1, 100 FROM obras_analisis
     WHERE obra=2 
     group by idcon 
) as ob2
 ON DUPLICATE KEY UPDATE obras_analisis.importe=ob2.foo
;

但是,得到这个错误:

1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解要使用的正确语法 'as ob2 ON DUPLICATE KEY UPDATE obras_analisis.importe=ob2.foo' 附近 在第 5 行

【问题讨论】:

    标签: mysql mariadb


    【解决方案1】:

    您不能为INSERT 中的SELECT 查询提供别名。使用VALUES(columnname) 获取将插入该列的值。

    INSERT IGNORE INTO obras_analisis (concepto, obra, fecha, importe, idcon, af, ordenaf, porcentaje) 
    (SELECT '(CD) COSTO DIRECTO',obra, now(), sum(importe) foo, idcon,1, 1, 100 FROM obras_analisis
         WHERE obra=2 
         group by idcon 
    )
    ON DUPLICATE KEY UPDATE importe = VALUES(importe)
    ;
    

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 1970-01-01
      • 2017-01-31
      • 2016-07-04
      • 2011-08-06
      • 1970-01-01
      • 2013-08-02
      • 2019-10-28
      • 1970-01-01
      相关资源
      最近更新 更多