2

我有一个带有一些更新查询的 .sql 文件。

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

例如Update table1 set col1="zbc" where id=1; ,假设上述查询失败,因为未找到“id=1”。

然后我想执行下面的查询来更新另一个表:

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

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

4

2 回答 2

0

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

于 2012-09-19T07:25:00.143 回答
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。它返回最后一条语句更改、删除或插入的行数。

于 2012-09-19T08:35:38.277 回答