【问题标题】:SQLite Update syntaxSQLite 更新语法
【发布时间】:2020-12-06 10:49:47
【问题描述】:

这个 SQLite 语句有什么问题?

update HOME_TEMP ab 
set ab.REALIMEI=(select substr(cd.IMEI ,1,14) from HOME_TEMP cd where ab.MSISDN=cd.MSISDN)

SQL 错误 [1]:[SQLITE_ERROR] SQL 错误或缺少数据库(近 “ab”:语法错误)

【问题讨论】:

    标签: sqlite sql-update


    【解决方案1】:

    为要更新的表设置别名在语法上是不正确的。
    这是正确的语法:

    update HOME_TEMP  
    set REALIMEI=(
      select substr(cd.IMEI, 1, 14) 
      from HOME_TEMP cd 
      where HOME_TEMP.MSISDN = cd.MSISDN
    ) 
    

    【讨论】:

    • 谢谢,在 oracle 中工作,我认为它可以在这里工作。
    【解决方案2】:

    您需要使用AS 为正在更新的表设置别名(并且在要设置的列名中无法识别(或需要)):

    update HOME_TEMP AS ab 
    set REALIMEI=(select substr(cd.IMEI, 1, 14)
                     from HOME_TEMP cd
                     where ab.MSISDN=cd.MSISDN)
    

    UPDATE documentation 中查看qualified-table-name 的定义。

    【讨论】:

      猜你喜欢
      • 2012-03-22
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2021-06-09
      • 2020-01-02
      • 1970-01-01
      相关资源
      最近更新 更多