我在MySQL中創建了兩個名爲「birthTable」和「deathTable」的表。當我添加一個人在他/她出生時的deathTable中時,我想從出生表中刪除他/她的姓名和家庭,因爲我將他/她添加到deathTable中。但我不知道我該怎麼做?在MySQL中移動和刪除行
回答
你需要做的是構造一個DELETE FROM
-查詢。如果您只想從表格中刪除一行,則需要確保您提供的參數對於該行是唯一的。通常這是通過一個名爲id
的列完成的。然後,知道ID,所有你需要做的是這樣的:
DELETE FROM table WHERE id=<your id>;
我認爲你的情況,你可能只是有一個叫做「人」表,和一個布爾列「活着」,這是1,如果如果這個人已經死了,那麼這個人是活的,而且是0
如果你仍然想從你birthTable刪除一行,假設你知道這個人的名字,你做這樣的:
DELETE FROM birthTable WHERE firstName=<first name> AND lastName<last name>;
我認爲對於姓氏和列名名字是firstName和lastName,你必須修改它以匹配你的列名。這將刪除與critera相匹配的birthTable中的任何條目(如果您有例如2個人稱爲Alan Johnson,則可能不止一個)。
希望有所幫助。 :)
您可以在表deathTable
上的插入上寫入觸發器,它從birthTable
刪除對應的行。
CREATE TRIGGER trg_deathTable_insert
BEFORE INSERT ON deathTable
FOR EACH ROWS
BEGIN
DELETE FROM birthTable WHERE person_id = NEW.person_id;
END;
這裏沒有必要使用觸發器......並且按id刪除可能是錯誤的,如果id是自動增量的 – knoopx 2009-12-16 10:11:19
「如果id是自動增量,則可能是錯誤的」 「請解釋它爲什麼錯了? – 2009-12-16 20:03:03
您描述的內容可以手動完成,也可以通過觸發器完成,但通常不應該這樣做。
你應該有一張名爲people的表格,然後簡單地將它們標記爲死或活。相反,如果您打算存儲此信息,則也可以爲其生日和死日創建兩列。
通常,您不應該僅僅因爲關於它們的某些屬性發生了變化而移動記錄。
從技術上講,你所說的一切都是正確的(我同意你的觀點),但是你在這裏所說的沒有回答這個問題,或者有助於解決OP的直接問題。 – 2009-12-13 15:43:36
這是一個試圖指導OP更好的解決方案。 – 2009-12-13 15:45:51
回答問題的最佳方法是幫助OP解決問題,而不是解決他的問題。 +1 – erikkallen 2009-12-13 15:49:15
DELETE FROM birthTable WHERE id = xxx
- 1. 移動和刪除行
- 2. 刪除和移動文件
- 3. 差異/刪除和移動
- 4. 從移動列表中刪除行kendo
- 5. 如何在mysql中移動所有行代替已刪除的行
- 6. 自動刪除mysql中的行
- 7. 只在php中刪除1行mysql mysql
- 8. 刪除MySQL行
- 9. 與刪除動態移除
- 10. 回滾文件移動,文件夾刪除和mysql查詢
- 11. PHP MySQL刪除父行和子行
- 12. 問題刪除行MySQL中
- 13. 刪除一行在MySQL
- 14. 在MySQL中刪除
- 15. 在MySql中刪除
- 16. 刪除在MySQL和組
- 17. Logrotate - 壓縮,移動和刪除
- 18. 刪除行與MySQL
- 19. PHP MySQL刪除行
- 20. 在MySQL中刪除動態管理表
- 21. 使用查詢在mysql中刪除行
- 22. 自動刪除空的MySQL行?
- 23. 刪除表中的行mysql mysql
- 24. 在mysql中創建和刪除VIEWs
- 25. 移動/刪除單元格中的數據而不移動/刪除公式
- 26. 在MySQL中刪除軟刪除行有什麼好處?
- 27. Mysql:刪除行與使用「刪除」列
- 28. MySQL刪除和更新多行
- 29. MySQL和刪除與INNER JOIN的幾行
- 30. 使用jquery和PHP刪除MySQL行
我希望你添加到deathTable的人已經死了:) – 2009-12-13 12:32:05
你爲什麼不使用單一的「人」表,添加布爾列「is_dead」? – knoopx 2009-12-16 10:09:20