- Bạn cần đặt Dấu phân cách thành bất kỳ thứ gì ngoại trừ
;
- Theo tùy chọn, hãy kiểm tra xem thủ tục được lưu trữ cùng tên đã tồn tại hay chưa.
- Cuối cùng, hãy xác định lại Dấu phân cách thành
;
- Trừ khi, bạn sẽ sử dụng biến
x
bên ngoài thủ tục được lưu trữ này; bạn thực sự không cần sử dụng@
; nó làm cho biến khả dụng ở mọi nơi trong phiên cụ thể đó).
Hãy thử (giải thích thêm trong phần bình luận):
CREATE TABLE t1 (s1 INT, PRIMARY KEY (s1)); -- create the table
DELIMITER $$ -- redefine the delimiter to $$ (for eg)
DROP PROCEDURE IF EXISTS `handlerdemo` $$ -- drop previous if exists
CREATE PROCEDURE handlerdemo ()
BEGIN
DECLARE x INT DEFAULT 0; -- datatype is INT
-- also a good practice to set default value
SET x = 1; -- no need to use in Session context
INSERT INTO t1 VALUES (x); -- use variable name here instead of literal value
SET x = 2;
INSERT INTO t1 VALUES (x);
END $$ -- remember that delimiter is $$ right now
-- redefine the Delimiter back to ;
DELIMITER ;