簡體   English   中英

從數據庫中的多個表中刪除行

[英]Delete rows from multiple tables in a database

我想基於另一個表中的條件從表中刪除一些記錄。 如何從其中一個表中刪除而不刪除兩個表中的記錄?

我正在尋找刪除與其他表聯接的表,查詢看起來像這樣。

DELETE  DeletingFromTable
FROM    DeletingFromTable
        INNER JOIN CriteriaTable ON DeletingFromTable.field_id = CriteriaTable.id
WHERE   CriteriaTable.criteria = "value" ;

您的問題不是100%清楚,但是此查詢將同時刪除表1,2和3:

DROP TABLE table1,table2,table3

您一次只能刪除一個表中的數據。

從多個表中刪除寫多個用分號分隔的查詢,並立即執行,如

delete from table1;
delete from table2;
delete from table3;

或者,您可以編寫過程來執行此任務。

請同時檢查此線程在mysql中將多個表一次性刪除

這應該工作:

DELETE DeleteFromTable FROM DeleteFromTable AS DT
JOIN CriteriaFromTable AS CT ON DT.SomeId = CT.SomeId
WHERE  CT.SomeId=[value]

您可以編寫查詢以DROP表,如下所示:

DROP TABLE [TABLE_1]
DROP TABLE [TABLE_2]
DROP TABLE [TABLE_3]

根據表以及表之間的任何約束,您將需要以正確的順序DROP表。

如果右鍵單擊任何表(取決於SQL版本),則應該能夠“查看依賴項”。 如果您計划DROP的3個表僅相互依賴,則需要先DROP沒有子依賴項的表,以免失敗。

例如,如果您嘗試刪除在子表中將其主鍵作為外鍵引用的父表,則DROP將因此失敗。 因此,首先使用外鍵刪除子表將允許您隨后DROP父表。

但是,如果表在要刪除的表之外還有其他依賴關系,則需要先刪除這些依賴關系,然后才能運行。

您可以使用:

DELETE FROM TableName

這將刪除所有數據,但是如果您有任何種子列,則這些列將不會被重置。 如果要刪除數據並重置PK的種子,請使用TRUNCATE ...

TRUNCATE TABLE TableName

但是,您需要考慮是否還有其他具有referential integrity表,如果是這種情況,請參見SQL Server:如何在COMMIT之前忽略參照完整性?

編輯

您在上方的評論...

像這樣刪除查詢DELETE FROM table_name WHERE some_column = some_value;

...建議您要刪除特定行?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM