สร้าง Stored Procedure สำหรับ Insert ข้อมูล
ใช้ CREATE PROCEDURE พร้อม Parameter IN แล้ว INSERT ภายใน
สร้างตาราง
CREATE TABLE insertDataUsingStoredProcedure (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20),
Age INT
);
สร้าง Procedure
DELIMITER //
CREATE PROCEDURE StoredProcedureInsertData(
IN StudentName VARCHAR(100),
IN StudentAge INT
)
BEGIN
INSERT INTO insertDataUsingStoredProcedure(Name, Age)
VALUES (StudentName, StudentAge);
END //
DELIMITER ;
เรียกใช้ Procedure
CALL StoredProcedureInsertData('Chris', 24);
ตรวจสอบข้อมูล
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Chris | 24 | +----+-------+------+
โครงสร้าง Procedure
DELIMITER //- เปลี่ยน Delimiter ชั่วคราวIN- Parameter เข้า (มี OUT, INOUT)BEGIN ... END- Block คำสั่งDELIMITER ;- คืน Delimiter ปกติ
ขยายความสามารถ
- เพิ่ม Validation:
IF StudentAge < 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid age'; END IF; - Return ค่า:
OUT new_id INT+SET new_id = LAST_INSERT_ID(); - Transaction:
START TRANSACTION; ... COMMIT; - Error Handling:
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ...