我在MySQL中创建了两个名为“birthTable”和“deathTable”的表。当我在deathTable中添加一个他/她出生的人时,我想从出生时删除他/她的姓名和家庭,因为我将他/她添加到deathTable中。但我不知道我怎么能这样做?
答案 0 :(得分:15)
您描述的内容可以手动完成或使用触发器完成,但通常您不应该这样做。
你应该有一个名为people的表,然后简单地将它们标记为死或活。相反,如果您打算存储此信息,也可以为他们的生日和死亡日创建两列。
一般情况下,您不应仅仅因为某些关于它们的属性发生了变化而移动记录。
答案 1 :(得分:4)
答案 2 :(得分:2)
您需要做的是构建DELETE FROM
- 查询。如果您只想从表中删除一行,则需要确保您为其提供的参数对于该行是唯一的。通常这是通过使用名为id
的列来完成的。然后,知道id,你所要做的就是:
DELETE FROM table WHERE id=<your id>;
我认为在你的情况下,你可以只有一个名为“people”的表,以及一个布尔列“alive”,如果该人活着则为1,如果该人死亡则为0。
如果您仍想从birthTable中删除一行,假设您知道此人的姓名,则按以下方式执行:
DELETE FROM birthTable WHERE firstName=<first name> AND lastName<last name>;
我假设名字和姓氏的列名是firstName和lastName,你必须修改它以匹配你的列名。这将删除birthTable中与critera匹配的任何条目(如果你有2个人叫Alan Johnson,可能会超过一个)。
希望有所帮助。 :)
答案 3 :(得分:1)
您可以在表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;
答案 4 :(得分:0)
DELETE FROM birthTable WHERE id = xxx