次のような外部キーを持つ2つのテーブルを持つh2データベースがあります
CREATE TABLE master (masterId INT PRIMARY KEY, slaveId INT);
CREATE TABLE slave (slaveId INT PRIMARY KEY, something INT,
CONSTRAINT fk FOREIGN KEY (slaveId) REFERENCES master(slaveId));
そして次のようなものが必要です
DELETE master, slave FROM master m JOIN slave s ON m.slaveId = s.slaveId
WHERE something = 43;
つまり、両方のテーブルから削除します(私の知る限りMySqlで機能します)。FOREIGN KEY のため、最初にマスターから削除することはできません。スレーブから削除を開始すると、マスターから削除する行の情報が失われます。ON DELETE CASCADE を使用すると役立ちますが、毎回自動的に発生させたくありません。一時的に許可する必要がありますか?一時テーブルを使用する必要がありますか、それとも最善の解決策は何ですか?