我有许多具有不同表结构的mysql表,它们都有以下表名和字段名(左边的是表名,右边是字段名)
我希望能够在一个查询中使用单个变量(例如$id = somename)删除行的值。
user id,
user_image user
user_interest user
user_lang id
user_login user
user_personal user
user_prefer user
user_reviewuser
user_role user_id
user_translang user
user_translate user
user_web id另外,一个特定的userid可能不会出现在所有的表中。
我根本不知道如何一次把它们全部删除。任何提示都会很感激,我看了一堆类似的问题,但没有找到一个正确的答案。
发布于 2014-10-02 20:58:28
您希望创建一个外键约束,并指定"ON级联“。对于每个具有用户外键的表,您都需要这样做。例如,
ALTER TABLE user_image
ADD CONSTRAINT fk_user_image_user FOREIGN KEY (user)
REFERENCES user(id)
ON DELETE CASCADE;发布于 2014-10-02 20:59:45
您可以使用多表DELETE语法。如果任何相关表没有相应的行,则需要使用LEFT JOIN。
DELETE user, user_image, user_interest, ...
FROM user
LEFT JOIN user_image ON user.id = user_image.user
LEFT JOIN user_interest ON user.id = user_interest.user
...
WHERE user.id = $id但是,如果使用外键约束将表与ON DELETE CASCADE关联起来,则只需从user表中删除行,所有相关行都将被删除。
https://stackoverflow.com/questions/26169504
复制相似问题