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

당신은 다음과 같은 스크립트를 사용할 수 있습니다 리눅스/유닉스를 사용하는 경우 :

#!/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; 

그렇지 않으면 윈도우 cmd를/VBScript를/무엇을이 같은 것을 만들 수 있습니다.

+0

제안 사항이 'sql_script.sql'을 가져 와서 실행하도록 누군가를 막지 않으면 서 스크립트 내에서 실행을 제어하는 ​​방법을 찾고 있습니다. 나는 MS SQL을 사용하여 이런 종류의 일을하는 데 익숙하다. 귀하의 제안에 감사드립니다. – Riga