gpt4 book ai didi

mysql查询帮助从表中删除条目

转载 作者:行者123 更新时间:2023-11-28 23:19:59 25 4
gpt4 key购买 nike

我有 2 个 msql 表(记录和播放器),其中包含以下字段:

records = Id  PlayerId  Score  Date  Checkpoints  

players = Id Login Game NickName Nation UpdatedAt Wins TimePlayed TeamName

我从玩家数据库中删除了一些条目,我将从记录表中删除这个值。

两个数据库中的 Id 值相同。

我使用了这个命令:

DELETE FROM `players` WHERE `players`.`Id` = 27;

但删除后Id` = 27 仍然存在于记录表中。

所以现在玩家表中没有 id 27,但我将从记录中删除它。我还有 120 个条目:(

最佳答案

如果您希望在删除players时自动从records表中删除相关行,您需要将PlayerId声明为带有 ON DELETE CASCADE 选项的外键。

ALTER TABLE records ADD CONSTRAINT fk_playerid FOREIGN KEY (PlayerId) REFERENCES players (id) ON DELETE CASCADE;

这仅在您使用 InnoDB 时有效;在 MyISAM 中忽略外键。

如果不能使用外键,可以在删除的时候加入表:

DELETE p, r FROM players AS p
LEFT JOIN records AS r ON p.id = r.PlayerId
WHERE p.id = 27;

这需要使用LEFT JOIN;如果您使用INNER JOIN,它不会删除没有相关记录的玩家。

关于mysql查询帮助从表中删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42147238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com