我很想执行我在互联网上找到的以下语句,以更改Sonar的快照。
UPDATE snapshots as old_snap,
snapshots as new_snap
SET old_snap.islast = 0
where old_snap.islast=1
and new_snap.created_at > old_snap.created_at
and new_snap.project_id = old_snap.project_id
and new_snap.islast=1;
但是在执行该语句时,它说它期望一个SET。
错误:SQL语句“ UPDATE SNAPSHOTS AS OLD_SNAP,[*] NEW_SNAP SET OLD_SNAP.ISLAST = 0 WHERE OLD_SNAP.ISLAST = 1 AND NEW_SNAP.CREATED_AT> OLD_SNAP.CREATED_AT AND NEW_SNAP.PROJECT_ID = OLD_SNAPLAST.PROJECT是语法错误。 1“; 预期的“ SET”;SQL语句:UPDATE快照为old_snap,new_snap SET old_snap.islast = 0,其中old_snap.islast = 1和new_snap.created_at> old_snap.created_at和new_snap.project_id = old_snap.project_id和new_snap.islast = 1 [42001-178] 42001错误代码:42001
任何人都可以解决此问题?
UPDATE语句更改表中的行。
典型的UPDATE语句指定以下信息:
该table_name
改变的表名:
一个WHERE
是过滤改变行条款
使用SET
子句指定的列名称及其新值的列表
您可以使用同一条UPDATE
语句更改一个或多个行。
如果指定了多个行,则将对所有这些行执行相同的更改。
Update
Synthax:
UPDATE table_name
SET (column_name = value)
WHERE statement
UPDATE snapshots as old_snap
SET old_snap.islast = 0
WHERE old_snap.islast=1
and (select new_snap.created_at
from snapshots new_snap
where new_snap.project_id = old_snap.project_id
and new_snap.islast=1
) > old_snap.created_at;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句