是否可以从客户端应用程序一次将多个SQL语句发送到PSQ v13?
我遇到一种情况,我想通过ODBC在一次调用中同时发送一条delete语句和一条insert语句。如果我可以将其作为事务来执行,以使两个语句成功或失败,那也是理想的选择。
在没有创建服务器端存储过程的情况下,这两种方法是否有可能?如果是的话,组合多个语句的正确语法是什么?
答案 0 :(得分:1)
没有一种方法可以执行两个语句并保证两个语句都成功而不使用事务。事务仅在存储过程中可用。
您正在描述的内容(以原子方式执行DELETE
和INSERT
语句)非常适合使用事务的存储过程。
类似的事情是一个好的开始:
CREATE PROCEDURE TransactionTest (:ID integer)
RETURNS (
ID INTEGER);
BEGIN
START TRANSACTION;
DELETE FROM Table where ID = :ID;
SELECT MAX(ID) from table;
COMMIT WORK;
END;