从客户端应用程序,是否可以一次将多个SQL语句发送到PSQ v13?
我有一种情况,我想通过 ODBC 在一次调用中同时发送删除语句和插入语句。如果我可以将此操作作为事务来执行,以便两个语句都成功或失败,那也是理想的。
在不创建服务器端存储过程的情况下,这些事情中的任何一个都可以实现吗?如果是,组合多个语句的正确语法是什么?
没有一种方法可以执行这两个语句并保证两者都在不使用事务的情况下成功。事务仅在存储过程中可用。
您所描述的内容(以原子方式执行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;