首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动执行多个命令

问自动执行多个命令
EN

Stack Overflow用户
提问于 2011-02-10 09:59:29
回答 3查看 116关注 0票数 0

我正在使用PHP和MySQL来调用一些命令。存在集团-员工对照表,可以在集团中增加或删除员工。我编写此功能的方法是:首先删除所有员工,如果组被修改,则添加回表中的每个员工。但我希望确保所有命令都能通过,否则会回滚该表。我怎样才能确保命令自动执行呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-10 10:02:41

除非我弄错了,否则你要找的是交易。

这是一个很好的起点:http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-transactions.html

票数 3
EN

Stack Overflow用户

发布于 2011-02-10 10:10:10

假设您的目标表支持事务,那么您需要mysqli transaction方法系列。

请参见:

如果您的表不支持事务,您可以毫无问题地将您的表类型更改为'InnoDB`,从而支持事务。请先咨询您的数据库管理员,然后再执行此操作。

票数 1
EN

Stack Overflow用户

发布于 2011-02-10 10:10:15

如果您使用的是MyIsam引擎而不是InnoDB,那么就不能利用事务。在这种情况下,最好的办法是先执行所有的插入操作(您的交叉引用表应该有一个两字段的唯一约束,这样dups就会悄悄地失败)。然后执行一次删除:

代码语言:javascript
复制
DELETE FROM employees_groups 
WHERE group_id = <groupid> 
AND employee_id NOT IN (list of employee ids you just inserted)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4952671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档