MySQL 저장 프로시저 작성 및 사용을 시작하기 전에 다음 전제 조건이 있어야 합니다. −
MySQL 버전
MySQL 5에 저장 프로시저가 도입되었다는 것을 알고 있으므로 저장 프로시저를 작성하고 사용하기 전에 먼저 MySQL 버전을 확인해야 합니다. 다음 쿼리로 수행할 수 있습니다. -
mysql> Select VERSION(); +-----------+ | VERSION() | +-----------+ | 5.7.20 | +-----------+ 1 row in set (0.10 sec)
현재 사용자의 권한
사실, CREATE PROCEDURE 및 CREATE FUNCTION은 CREATE ROUTINE 권한이 필요합니다. 기본적으로 MySQL은 루틴 작성자에게 ALTER ROUTINE 및 EXECUTE 권한을 자동으로 부여합니다. 이 동작은 automatic_sp_privileges 시스템 변수를 비활성화하여 변경할 수 있습니다. 현재 사용자의 권한은 다음 쿼리로 확인할 수 있습니다. -
mysql> SHOW PRIVILEGES
데이터베이스 선택
프로시저를 만들기 전에 사용 가능한 데이터베이스에서 데이터베이스를 선택해야 합니다. 다음 쿼리의 도움으로 수행할 수 있습니다. -
mysql> USE query; Database changed
위 쿼리에서 'query'라는 데이터베이스를 사용하고 있음이 분명합니다.
구분자 선택
구분자는 SQL 문을 완성하는 데 사용되는 문자 또는 문자열입니다. 기본적으로 세미콜론(;)을 구분 기호로 사용합니다. 그러나 프로시저에 많은 문이 있을 수 있고 모든 사람이 세미콜론으로 끝나야 하기 때문에 저장 프로시저에서 문제가 발생합니다. 따라서 구분 기호로 문 또는 프로시저 내에서 거의 발생하지 않는 문자열을 선택하십시오. 이중 백슬래시 // 또는 이중 달러 기호 $$를 선택할 수 있습니다. 또는 우리가 선택한 다른 구분 기호 중 하나입니다. 다음 쿼리의 도움으로 수행할 수 있습니다. -
mysql> DELIMITER // ;
이제 기본 구분 기호가 // 기호로 변경되었으며 다음 쿼리에서 확인할 수 있습니다. -
mysql> Select * from student_info // +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 100 | Aarav | Delhi | Computers | | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | +------+---------+------------+------------+ 4 rows in set (0.00 sec)