2012-05-23 41 views
0

我有在其上我上后和导通之前触发用于插入创建一个MySQL表。每个tigger分别更新2行。所以一旦我向表中插入一行,总共有5行被更新,即使DB的响应将是“1行受到影响”。我需要找到一个办法知道总行没有得到更新,在这种情况下,5影响触发器后的行数

+0

哪些功能使用的是获得受影响的行数? –

+0

我目前没有使用任何功能。我在说的是mysql的回复 – Arshed

+0

在这种情况下,实现一个将执行插入的函数并且这两个触发器都返回在整个过程中修改的行数不是一件容易的事情吗? –

回答

0

我认为这是给一个行的影响,因为你是在表中增加一行。 Mysql回复仅给出该表中添加的行的信息。而不是通过触发器提供受影响的行。

+0

但我需要找到受影响的总行数如何。我可以使用程序,标志或花饰 – Arshed

+0

使用:SELECT ROW_COUNT();插入查询后。 –

+0

它也返回1 – Arshed

1

的问题似乎是,当你在触发插入/更新行MySQL不计一起。最好的解决方案可能是为自己计算手动插入/更新的行,将值存储在变量中,在外部查询后获取并将ROW_COUNT()的结果添加到该变量中。

+0

您可以通过外部查询是什么意思?我不能 – Arshed

+0

你有一个查询,这将触发查询B和C B和C的插入/更新记录,以了解您的解决方案,而MySQL不计那些ROW_COUNT()。因此,您需要在变量中对它们进行计数,然后在查询A完成后,将计入的变量添加到ROW_COUNT()的结果中,并且应该有正确的受影响的行数(包括触发器)。 – 0xCAFEBABE

+0

我不能在数据库中做任何操作。我只被允许只读 – Arshed

相关问题