TableA と TableB の 2 つのテーブルがあります。TableB には、TableA を指す fk フィールドがあります。
TableA に対して DELETE ステートメントを使用する必要があり、その中のレコードが削除されたら、TableA のそのレコードに関連する TableB のすべてのレコードを削除する必要があります。かなり基本的です。
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 つの別々のステートメントを実行することはできません。begin-commit なしで使用しようとしましたが、同じエラーが発生しました。
それを行う方法はありますか?