2014-01-08 1 views
0

데이터베이스에 적용 할 데이터베이스 내부에 여러 테이블이 있지만 작성중인 저장 프로 시저는 한 테이블에만 사용됩니다. 저장 프로 시저의 SQL 스크립트가 전체 데이터베이스에 적용될 것이므로 다른 테이블에도 영향을 미치는지 궁금합니다. 이 스크립트로 인해 다른 테이블이 방해 받기를 원하지 않습니다.메시지가 SQL 스크립트를 검토 얻는 것은 MySQL의 워크 벤치에서 저장 프로 시저를 작성하는 동안 다음과 같은 메시지가 무엇입니까

처음 입력 할 때 입력 해주십시오.

질문 # 2 :

가 왜 "DELIMITER는 $$"첫 번째 문으로 다음과 같은 문 앞에 루틴을 작성하는 동안 볼 수 있습니까?

CREATE PROCEDURE `mydatabase`.`myfirstroutine`() 

BEGIN 

감사

답변

1

1) MySQL의 워크 벤치는이 서버로 전송되기 전에 생성 된 SQL 스크립트를 검토 할 수있는 옵션을 제공합니다. 이렇게하면 가능한 문제를 확인할 수 있습니다.

2) DELIMITER 명령은 일반적으로 저장 프로 시저 코드 자체가 세미콜론을 사용하여 개별 명령을 구분해야하므로 단일 명령문 (기본적으로 세미콜론)을 끝내는 현재 구분 기호를 다른 것으로 전환하는 데 필요합니다. 그러나 SP 코드는 전체적으로 서버에 전송되어야합니다.

몇 가지 세부 정보 : DELIMITER keywword는 클라이언트 키워드로, 서버가이를 인식하지 못하므로 필요하지 않습니다. 클라이언트가 SQL 명령을 서버에 보내기 전에 적절하게 분리하는 방법입니다 (명령문 목록을 서버에 보낼 수없고 개별 명령문 만 보낼 수 있음).

그러나 MySQL Workbench에서는 특히 개체 편집기를 편집하는 개체 편집기에서 특히 그렇습니다. sp 텍스트는 DELIMITER 명령을 추가하는 것이 본질적으로 난센스입니다. 왜냐하면이 SP 코드 만 있으므로 분리 할 필요가 없기 때문입니다. 이것은 향후 버전에서 사라질 수도 있지만 지금은 무시하십시오.

관련 문제