我有一個數據庫,用戶有不同的項目。用戶可以有多個項目,但項目只能有一個用戶。刪除條目而不刪除相關條目mysql innoDB
我得到一個問題,如果我要刪除一個用戶而不刪除他的項目。 MySql不會讓我刪除用戶,除非我第一次刪除項目。
有沒有辦法可以刪除用戶並保留項目?
我有一個數據庫,用戶有不同的項目。用戶可以有多個項目,但項目只能有一個用戶。刪除條目而不刪除相關條目mysql innoDB
我得到一個問題,如果我要刪除一個用戶而不刪除他的項目。 MySql不會讓我刪除用戶,除非我第一次刪除項目。
有沒有辦法可以刪除用戶並保留項目?
您已使用外鍵約束設置模式,因此項目表行堅持所屬用戶的存在。
這種「刪除」通常是通過軟刪除來完成的:通過在表中添加一個「無效」列,並將其設置爲「是」或非零或類似的東西,當您要將特定行標記爲刪除。
如果你有一個包含用戶和項目表之間的外鍵關係,你可以在你創建的表用這個項目表
FOREIGN KEY (user_id)
REFERENCES users(user_id)
ON DELETE SET NULL,
不幸的是你需要刪除並重新創建表,因爲你不能使用alter在現有表上進行此更改
我認爲你可以改變一個表。 [ALTER TABLE](http://dev.mysql.com/doc/refman/5.5/en/alter-table.html)支持刪除和添加索引。 –
你必須改變外鍵約束才能做到這一點。這是擁有外鍵的原因之一,您不會破壞它們。
您可以向用戶表添加不同的列,比如說'active',而不是刪除該用戶的記錄,將該列的值設置爲'n'(默認值爲'y')。然後,您可以檢索任何項目的信息,並在應用程序的其他部分只與活動列設置爲'y'的用戶一起工作。 –