我有一个带有一些更新查询的 .sql 文件。
我正在寻找的是当更新查询失败时,我应该能够执行另一个更新查询
例如Update table1 set col1="zbc" where id=1;
,假设上述查询失败,因为未找到“id=1”。
然后我想执行下面的查询来更新另一个表:
Update table2 set col1="zbc" where id=1;
由于我希望将其放入 .sql 文件中,因此我正在寻找单个查询来使用 if/case 语句或类似语句来实现此目的。
我有一个带有一些更新查询的 .sql 文件。
我正在寻找的是当更新查询失败时,我应该能够执行另一个更新查询
例如Update table1 set col1="zbc" where id=1;
,假设上述查询失败,因为未找到“id=1”。
然后我想执行下面的查询来更新另一个表:
Update table2 set col1="zbc" where id=1;
由于我希望将其放入 .sql 文件中,因此我正在寻找单个查询来使用 if/case 语句或类似语句来实现此目的。
您可以使用存储过程并从 .sql 文件内容中调用该过程吗?MySQL 手册指出 if/then 子句仅在“存储程序”中受支持:http: //dev.mysql.com/doc/refman/5.5/en/if.html
如果只运行第二个查询并检查这些行是否存在于第一个表中,例如:
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。它返回最后一条语句更改、删除或插入的行数。