【发布时间】:2015-06-26 17:28:49
【问题描述】:
总结:我的“删除”语句似乎在删除完成之前返回。怎么能等到完成呢?
长版:我有一个针对 innoDB MySQL 表运行的 PHP 脚本,它从数据库中删除一组记录。比如:
delete from sections where term = '15/FA'
然后我跟进一组插入语句。
问题是,当先前的删除完成并清除我插入的一些新记录时,我的代码将部分插入我的新记录。这很糟糕。
如果我在调用 delete 后调用“sleep()”一秒钟,一切运行正常。显然这不是一个适当或可靠的解决方案,但它确实表明存在时间问题。
与我刚刚删除的记录相比,可能有更多、更少或不同的记录。使用“更新”而不是插入是行不通的。
我使用从插入返回的自动增量 ID 将更多记录插入到子表中。因此,在一个长脚本中执行全部删除和插入操作是不切实际的。 (或者如果是,我不知道怎么做。)
那么有什么方法可以知道“删除”功能何时完成?还是我需要放弃并切换到真正的数据库?
【问题讨论】:
-
你试过在 MySQL 中使用事务吗?
-
发布一些代码以便我们实际提供帮助
-
一些代码可能会有所帮助