在mysql中,如果要清空有外鍵約束的表,有以下兩種方法:
方法一:先刪除外鍵約束再清空表
ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱; TRUNCATE TABLE 表名;
使用這種方法需要先知道外鍵的名稱,然后使用ALTER TABLE語句刪除外鍵約束。接著使用TRUNCATE TABLE語句清空表數據,因為TRUNCATE TABLE語句比DELETE FROM語句更快、更占據少量的空間。
方法二:使用“級聯刪除”將刪除操作傳遞到關聯表
SET foreign_key_checks = 0; TRUNCATE TABLE 表名; SET foreign_key_checks = 1;
使用這種方法需要先禁止外鍵約束檢查,接著使用TRUNCATE TABLE語句清空表數據,最后開啟外鍵約束檢查。在啟用外鍵約束檢查之前,不會有任何約束錯誤,因為級聯刪除將刪除操作傳遞到關聯表。