MySQL에서는 FROM 절에서 select from procedure를 사용할 수 없습니다. CALL 명령을 사용하고 그 후에 SELECT 문을 실행할 수 있습니다.
먼저 테이블을 생성해 보겠습니다.
mysql> create table DemoTable2 -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(100), -> ShippingDateTime datetime -> ); Query OK, 0 rows affected (0.66 sec)
다음은 저장 프로시저를 생성하는 쿼리입니다.
mysql> DELIMITER // mysql> CREATE PROCEDURE insert_information(Name varchar(100),shippingtime datetime) -> BEGIN -> -> INSERT INTO DemoTable2(CustomerName,ShippingDateTime) VALUES(Name,shippingtime); -> END -> // Query OK, 0 rows affected (0.16 sec) mysql> DELIMITER ;
이제 호출 명령을 사용하여 저장 프로시저를 호출할 수 있습니다.
mysql> call insert_information('Chris',NOW()); Query OK, 1 row affected, 1 warning (0.15 sec)
다음은 저장 프로시저를 호출한 후 select 문을 사용하여 테이블의 레코드를 표시하는 쿼리입니다.
mysql> select *from DemoTable2;
그러면 다음과 같은 출력이 생성됩니다.
+------------+--------------+---------------------+ | CustomerId | CustomerName | ShippingDateTime | +------------+--------------+---------------------+ | 1 | Chris | 2019-04-08 15:03:07 | +------------+--------------+---------------------+ 1 row in set (0.00 sec)