Ces*_*ega 1 mysql sql postgresql sql-update
我有一个mysql命令:
update table_demo SET flag= 1 where flag=0 ORDER BY id ASC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
并且需要在 Postgres 中使用相同的命令,我收到此错误:
错误:语法错误位于或附近
'ORDER'
要更新前 10 行(实际上需要更新):
UPDATE table_demo t
SET flag = 1
FROM (
SELECT table_demo_id -- use your actual PK column(s)
FROM table_demo
WHERE flag IS DISTINCT FROM 1
ORDER BY id
LIMIT 10
FOR UPDATE
) u
WHERE u.table_demo_id = t.table_demo_id;
Run Code Online (Sandbox Code Playgroud)
FOR UPDATE(行级锁)仅用于防止并发写访问。如果您的事务是唯一写入该表的事务,则不需要它。
如果定义了 flag NOT NULL,则可以使用WHERE flag <> 0.
相关答案以及更多解释和链接:
| 归档时间: |
|
| 查看次数: |
2439 次 |
| 最近记录: |