如果第一次更新在mysql中失败,则查询更新另一个表

时间:2012-09-19 07:21:25

标签: mysql sql-update

我有一个包含更新查询的.sql文件。

我正在寻找的是当更新查询失败时,我应该能够执行另一个更新查询

e.g。 Update table1 set col1="zbc" where id=1; 假设上面的查询失败,因为找不到“id = 1”。

然后我想执行以下查询以在另一个表上执行更新:

Update table2 set col1="zbc" where id=1;

由于我希望将其放入.sql文件中,我正在寻找单个查询来使用if / case语句或类似的东西实现此目的。

2 个答案:

答案 0 :(得分:0)

您可以使用存储过程并从.sql文件内容调用该过程吗? MySQL手册指出if / then子句仅在“存储程序”中受支持: http://dev.mysql.com/doc/refman/5.5/en/if.html

答案 1 :(得分:0)

如果只运行第二个查询并检查第一个表中是否存在这些行,例如:

,该怎么办?
Update table1 set col1="zbc" where id=1;
Update table2 set col1="zbc" where id=1 
                             and not exists (select id from table1 where id=1);

或使用ROW_COUNT() MySql函数和IF。它返回最后一个语句更改,删除或插入的行数。