insert into table1 ...;
update table2 set count=count+1;
以上插入东西到table1
,如果成功,更新table2
的count
字段。有没有比交易更有效的方法?
当然这种事情可以通过事务处理,但事务需要锁定表,这在高并发系统中效率不高。如果您需要更新该事务中的多个表,则可能会更糟糕。
您的解决方案是什么?
我使用PHP,我执行的交易是这样的:
mysql_query('begin');
mysql_query($statement1);
mysql_query($statement2);
...
mysql_query('commit');
因此,它看起来像那些$statement
提到的所有表将被锁定?
哪个版本的MySQL具有稳定的触发器? – user198729 2010-01-26 12:36:46
> = 5.1.6 http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html – Rufinus 2010-01-26 13:09:09