+ -
当前位置:首页 → 问答吧 → 关于批量删除数据时,删除关联表的数据失败

关于批量删除数据时,删除关联表的数据失败

时间:2011-07-28

来源:互联网

求助:关于批量删除时,删除关联数据失败(也就是求批量删除数据时连同关联数据一起删掉的写法?)

(一对一关联)两个表分别是:
    用户账号表  tool_user          (字段:id,用户名,密码.....)
    用户资料表  tool_user_more (字段:id,user_id,姓名,生日,年龄,电话.....)

我遇到的问题是:
   单条删除(只带一个id,连通关联数据一起删除掉了,一切正常)
   批量删除(带两个id,则只能删除主表的数据,不能删除关联数据)

下面是详细说明:
**************************************************************
单条删除(只带一个id,一切正常)
代码:$model->relation(true)->delete ('5');

转换的sql如下:
主表SQL: DELETE FROM `tool_user` WHERE ( `id` = '5' )
关联表SQL: DELETE FROM `tool_user_more` WHERE user_id='5'

**************************************************************
批量删除(带两个id,生成的sql中,关联表没有获取到id的值)
下面是我写的两种写法都不能删除关联表的数据
--------------------------------------------------------------------
代码:$model->relation(true)->delete ('5,6');

转换的sql如下:
主表SQL: DELETE FROM `tool_user` WHERE ( `id` IN ('5','6') )
关联表SQL: DELETE FROM `tool_user_more` WHERE user_id=''

或   ------------------------------------------------------------

代码:$model->relation(true)->where ("id in ('5,6')")->delete();

转换的sql如下:
主表SQL: DELETE FROM `tool_user` WHERE id in ('5,6')
关联表SQL: DELETE FROM `tool_user_more` WHERE user_id=''
--------------------------------------------------------------------
***********************************************************

到底是tinkphp中没有内置的方法实现批量删除关联数据吗?
这样的问题,只要用tinkphp做过项目的大哥们都应该会用到我这样的删除吧,
你们是怎么删除的?

   很简单的一个例子,删除一个用户时,同时把这个用户的管理数据一起删除掉
    我要的效果是:批量删除,比如从复选框获取批量删除的用户id,删除它们

我遇到的问题是:
   单条删除(只带一个id,连通关联数据一起删除掉了,一切正常)
   批量删除(带两个id,则只能删除主表的数据,不能删除关联数据)

作者: zhoujianfeng   发布时间: 2011-07-28

简而言之:
    “单条记录删除”: 删除 会员信息时,连同关联数据一起删除    (正常)
   “批量删除”  : 删除 会员信息时,不能连同关联数据一起删除  (失败)

  “单条记录删除”写法: $model->relation(true)->delete ('5');  删除id为5的记录
     求“批量删除”???(删除id为5 或6的两记录)

作者: zhoujianfeng   发布时间: 2011-07-28