MySQL语句有条件执行

时间:2017-01-12 14:13:34

标签: mysql break

创建一个MySQL脚本,用一些表填充测试数据。想避免多次执行脚本(不仅仅是团队中的我:)。由于我不拥有表格,因此我无法创建约束或删除表格内容。

我想做什么的粗略代码概念:

IF (SELECT EXISTS(SELECT * FROM <1st_Table> WHERE <1st_Record_Inserted>)) GOTO DontDoAnythingLabel

INSERT <1st_Table> ...
INSERT <2nd_Table> ...
INSERT <3rd_Table> ...
...
UPDATE <N_Table>
...
INSERT <M_Table> ...

DontDoAnythingLabel:

如何用MySQL编写此代码?

1 个答案:

答案 0 :(得分:1)

如果你正在使用Linux / Unix,那么你可以使用这样的脚本:

#!/bin/bash
res=`mysql -s -r -N -u [user] -p[password] -e 'SELECT EXISTS (SELECT * FROM <1st_Table> WHERE <1st_Record_Inserted>)' [database]`
if [ $res = "1" ]; then
    mysql -u [user] -p[password] [database] < sql_script.sql;
else
    echo "There are no such records!";
fi
mysql -u [user] -p[password] [database] < next_sql_script.sql;

否则使用Windows cmd / VBscript / whatever创建类似的东西。