MySQL插入table1更新table2,子查询还是事务?

时间:2012-09-23 13:56:15

标签: mysql

我想插入或更新,然后将新日志插入另一个表。

我正在运行一个漂亮的小查询,将信息从临时表中提取到其他表中,例如

插入 选择 重复密钥更新

没有php或者触发器(引导开发人员不喜欢em,我也不熟悉它们)我想做的是将新记录插入到日志记录表中。需要报告更新或插入的数据以及表格。

任何提示或示例?

注意:我用php做的很好,虽然在50K行上处理需要大约4个小时。使用laravel php框架,在staging update 4中循环遍历每个条目,其中每个表包含数据和日志,每行等于8个查询(这是使用laravel模型而不是原始sql)。我能够通过将日志推入数组和批处理来进行优化。但是,通过绕过所有吞吐量,你无法在mysql中超过15秒的处理时间。现在我迷上了用sql方式做的很棒的事情。

3 个答案:

答案 0 :(得分:1)

如果您需要执行多个查询语句。我指的是使用事务然后触发来保证AtomicityACID的一部分)。 Bellow代码是MySql transaction的样本:

START TRANSACTION;
UPDATE ...
INSERT ...
DELETE ...
Other query statement
COMMIT;

交易中的陈述将全部或全部执行。

答案 1 :(得分:0)

如果你想做两件事(插入基行并插入日志行),你需要两个语句。第二个可以(而且应该)是一个触发器。

答案 2 :(得分:0)

最好使用Trigger,它通常用于记录目的

相关问题