2017-01-12 93 views
0

創建一個MySQL腳本來爲測試數據填充一些表。希望避免多次執行腳本(不僅僅是我在團隊中)。由於我不擁有表格,我無法創建約束或刪除表格內容。什麼我想要做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

如果您使用的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 /不管。

+0

尋找一種方法來控制腳本內部的執行,因爲您的建議不會阻止某人採用'sql_script.sql'並執行它。我很習慣用MS SQL來做這種事情。感謝您的建議。 – Riga