[英]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.