我有一个包含更新查询的.sql文件。
我正在寻找的是当更新查询失败时,我应该能够执行另一个更新查询
e.g。 Update table1 set col1="zbc" where id=1;
假设上面的查询失败,因为找不到“id = 1”。
然后我想执行以下查询以在另一个表上执行更新:
Update table2 set col1="zbc" where id=1;
由于我希望将其放入.sql文件中,我正在寻找单个查询来使用if / case语句或类似的东西实现此目的。
答案 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。它返回最后一个语句更改,删除或插入的行数。