1

我正在尝试在 SQLite 中进行此更新:

UPDATE T_INPUT c SET (c.STATUS = 0, c.ERRORMSG='') where not c.ID in (SELECT a.ID FROM T_INPUT a, T_OUTPUT b where a.ID = b.FK_INPUT AND a.STATUS = 1)

当我跑步时,我的回报是:

[System.Data.SQLite] ErrorCode: 1
ErrorMessage: SQL logic error or missing database
near "c": syntax error

但为什么?这里没有错。

我尝试使用 T_INPUT.ID 而不是“c”,但它也不起作用。

谁能帮我?

4

1 回答 1

4
UPDATE T_INPUT c SET (...)

SQLite 似乎不支持 UPDATE 语句中的表别名或(围绕 SET 值的括号)。请参阅他们的官方语法文档。

如果我像这样更改您的查询,至少就 SQLite 抱怨该表不存在而言:

UPDATE T_INPUT 
SET 
    STATUS = 0, 
    ERRORMSG='' 
where T_INPUT.ID in (
    SELECT a.ID 
    FROM T_INPUT a, 
    T_OUTPUT b 
    where a.ID = b.FK_INPUT 
    AND a.STATUS = 1
);

结果:Error: no such table: T_INPUT

很难说更多而不看更多,例如数据库模式或 SQL Fiddle 示例。

于 2013-09-12T23:57:41.060 回答