在我的Oracle
數據庫中,我希望從2個不同的表中刪除行。如何在Oracle數據庫中同時執行2個表中的刪除操作?
問題是,如果我先從KENNEL中刪除行,那麼我想在DOG表中刪除的行不能被找到刪除。
以下是我的SQL statements
從兩個表中刪除。
DELETE FROM KENNEL WHERE COUNTRY_ID IS NULL;
DELETE FROM DOG WHERE ID IN (SELECT DOG_ID FROM KENNEL WHERE COUNTRY_ID IS NULL);
我怎麼能解決這個問題,以使2只刪除發生在同時,並確保無論從表中的行被刪除?
注意:我無法從DOG中刪除KENNEL,因爲KENNEL是必須先刪除的子記錄。
您可以簡單地從DOG首先刪除,然後從KENNEL刪除,如果出現錯誤,則處理異常以回滾兩個語句 – Aleksej
我不能這樣做,因爲DOG和KENNEL之間存在約束,所以必須先刪除犬舍這是一個兒童記錄 – java123999
你的桌子上有什麼樣的限制?請發佈所有相關約束條件的代碼 – Aleksej