Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
Php 在删除级联上从父元素中删除子元素的替代方法_Php_Sql - Fatal编程技术网

Php 在删除级联上从父元素中删除子元素的替代方法

Php 在删除级联上从父元素中删除子元素的替代方法,php,sql,Php,Sql,我有两张桌子: 仓库(母公司) 子仓库(子仓库) 下面是表的创建 我希望能够在清除整个子数据的同时删除父表 除了在delete cascade上使用之外,我更喜欢替代方法,这将导致我更改表 这很麻烦,因为这些编码需要一个拖放安装过程,这很耗时,因为现有的表很多 tl;dr-选择父id时删除所有子数据的另一种方法 删除 除了在删除级联上使用 以下是我的function.php页面中的删除sql: base_executeSQL("DELETE FROM einv_warehouse WHERE e

我有两张桌子:

  • 仓库(母公司)
  • 子仓库(子仓库)
  • 下面是表的创建

    我希望能够在清除整个子数据的同时删除父表

    除了在delete cascade上使用之外,我更喜欢替代方法,这将导致我更改表

    这很麻烦,因为这些编码需要一个拖放安装过程,这很耗时,因为现有的表很多

    tl;dr-选择父id时删除所有子数据的另一种方法 删除

    除了在删除级联上使用

    以下是我的function.php页面中的删除sql:

    base_executeSQL("DELETE FROM einv_warehouse WHERE einv_wh_id = " . $whid . "");
    
    base_executeSQL("DELETE FROM einv_subwarehouse WHERE einv_whs_id = " . $whid . "");
    

    我不知道我是否理解您的意思,但请尝试使用transaction,首先删除所有子行,然后删除父行(这似乎是可行的:)@szapioplese告诉我们为什么不需要on delete级联解决方案。另一种方法是触发器,但实际上基本上是一样的。我有一个巨大的数据库和许多表。删除和重新创建将非常耗时。因此,只是想知道是否有替代方法@jarlhtriggers似乎也不适用于此。无论如何谢谢你:p@jarlh
    base_executeSQL("DELETE FROM einv_warehouse WHERE einv_wh_id = " . $whid . "");
    
    base_executeSQL("DELETE FROM einv_subwarehouse WHERE einv_whs_id = " . $whid . "");