Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 删除多表中不存在的记录';不存在于表中_Sql_Command - Fatal编程技术网

Sql 删除多表中不存在的记录';不存在于表中

Sql 删除多表中不存在的记录';不存在于表中,sql,command,Sql,Command,我有三张桌子 mainT具有主键main\u id sub1T有外键指向main\u id sub2T有外键指向main\u id 我需要在一个SQL命令中删除sub1T和sub2T中的所有记录 我知道如何使用以下命令删除sub1T内的所有记录: DELETE FROM `sub1T` WHERE NOT EXISTS (SELECT NULL FROM mainT WHERE `mainT`.main_id =

我有三张桌子

  • mainT
    具有主键
    main\u id
  • sub1T
    有外键指向
    main\u id
  • sub2T
    有外键指向
    main\u id
我需要在一个SQL命令中删除
sub1T
sub2T
中的所有记录

我知道如何使用以下命令删除sub1T内的所有记录:

DELETE FROM `sub1T` 
WHERE NOT EXISTS (SELECT NULL 
                  FROM mainT 
                  WHERE `mainT`.main_id = main_id)

我需要从多个子表中删除

我认为您不能在一个命令中从多个表中删除。您需要为此编写PL/SQL。大多数RDBMS支持delete cascade上的
,当父表被删除时,它将从子表中删除数据。对于当前的需求,您应该使用
2
delete
语句,然后尝试在当前表结构的delete cascade上实现