2009-10-02 3 views
0

SQL Server 2005에 대한 경험이 있고 BEGIN 문과 END 만있는 많은 스크립트를 작성했습니다. 루프, 커서 등의 논리를 사용할 수는 있지만 저장 프로 시저를 만들지 않고 MySQL에서이 작업을 수행 할 수없는 것처럼 보입니다. 나는 MySQL에 저장된 procs가 새롭고 SQL Server만큼 견고하지는 않을 것이지만 어쨌든 단지 한 번만 실행하기를 원한다는 것을 알고있는 일반 스크립트를 작성하기 때문에 어쨌든 내 데이터베이스로 돌아 가지 않아도된다. 저장 한 모든 procs를 나중에 제거 하시겠습니까? 저장 프로 시저가 아닌 일반 스크립트를 만들 수 있습니까?

BEGIN 
    CREATE TABLE foo(id INT, data VARCHAR(100)); 
    CREATE TABLE test(t_id INT, data VARCHAR(50)); 
END; 

는 MySQL의이 가능 예를 들어 내가 여러 talbes를 생성하는 스크립트를 작성하면됩니다하려고 무엇을 조금을 명확히?

답변

1

당신은 MySQL의에서 beginend 키워드를하지 않아도, 다음이 작동합니다

CREATE TABLE foo(id INT, data VARCHAR(100)); 
CREATE TABLE test(t_id INT, data VARCHAR(50)); 

당신은 또한 당신이 경우 테이블 (에러가 발생하지 않도록하기 위해 if not exists 절을 사용할 수 있습니다들) 이미 있습니다 :

CREATE TABLE IF NOT EXISTS foo(id INT, data VARCHAR(100)); 
CREATE TABLE IF NOT EXISTS test(t_id INT, data VARCHAR(50)); 
+0

나는 이미 그것을 시도하고 오직 첫 번째 테이블을 만들 것입니다. 쿼리를 실행하기 위해 MySQL 관리자의 쿼리 브라우저를 사용하고 있습니다. 이게 내 문제 야? –

0

죄송합니다. 나는 파일 -> 새 스크립트 탭으로 가서 대신 스크립트를 실행하려고 시도하는 대신 상단의 일반 SQL 작성자에서 스크립트를 실행하려고했습니다. 도움을 주셔서 감사합니다

+0

Heh, 내가 Query Browser를 사용하기 시작할 때도 똑같은 문제가있었습니다. 다소 직관적이지 않습니다. 그리고 스크립트 실행 결과 집합을 표시하지 않을 것이라는 사실은 끔찍합니다. :(MySQL은 MSSQL의 Management Studio와 같은 Workbench (http://wb.mysql.com/)라는 대체 제품으로 작업하고 있습니다.이 제품은 베타 버전이지만 지금은 잠시 사용하고 있습니다. Query Browser이므로 한번 시도해보십시오. –

관련 문제