我有2個表,TableA和TableB。 TableB有一個指向TableA的fk字段。pg_prepare:不能將多個命令插入預準備語句中
我需要爲TableA使用DELETE語句,並且當其中的記錄被刪除時,我需要刪除TableB中與TableA中該記錄相關的所有記錄。很基本。
begin;
DELETE FROM TableB
WHERE nu_fornecedor = $1;
DELETE FROM TableA
WHERE nu_fornecedor = $1;
commit;
此字符串傳遞給pg_prepare(),但後來我得到錯誤 ERROR: cannot insert multiple commands into a prepared statement
好吧,但我需要在同一個事務中運行兩個命令,我不能執行2個獨立的語句。我試圖用沒有開始提交併得到相同的錯誤。
任何想法如何做到這一點?
看來你很混淆語句和交易。在一個事務中,您可以根據需要執行儘可能多的語句。事實上,這是首先進行交易的要點。 –
By聲明我的意思是一個由1 pg_prepare()準備的SQL語句,由1 pg_execute()來執行。在這種情況下,該語句有2個要執行的命令,並且它們必須是事務性的。 – Hikari
是的。這對於pg_prepare是不可能的。 –