Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เขียน MySQL Stored Procedure Insert ข้อมูล

สร้าง 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 ...