2017-01-12 3 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

Смежные вопросы