【发布时间】:2020-09-03 23:11:55
【问题描述】:
我正在努力寻找在我的应用程序上制作“喜欢”按钮的最佳方式。我想打同一个端点并让一个存储过程来处理逻辑。这是我到目前为止所拥有的,但它似乎不起作用。我的目标是测试记录是否存在,如果存在则删除记录,否则创建记录。请让我知道我做错了什么,或者存储过程是否是这里的方法。以下是我在该过程中想要的逻辑,但目前无法正常工作。谢谢
IF (SELECT * FROM favorite_movies WHERE movie_id = '577922' and user_id = '5' limit 1)then
delete from favorite_movies WHERE movie_id = 577922 and user_id = 5;
else
INSERT INTO favorite_movies (user_id, movie_id)VALUES (5, 577922);
END IF
我得到的错误是
SQL Error [42601]: ERROR: syntax error at or near "IF"
Position: 1
【问题讨论】:
-
我敢打赌你没有用';'终止表达式就在
IF声明之前。您需要在上述之前显示代码以确认。SELECT语句也不起作用。表达式需要解析为布尔值。 -
如果您想使用该查询,请执行以下操作:
PERFORM * FROM favorite_movies WHERE movie_id = '577922' and user_id = '5' limit 1;IF上方的一行,然后是IF FOUND THEN [...]。欲了解更多信息,请参阅here
标签: sql postgresql sql-insert plpgsql sql-delete