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

สร้าง Stored Procedure ใน MySQL นับจำนวนแถวที่ได้รับผลกระทบจากคำสั่ง Query


Procedure นี้นับจำนวนแถวที่ได้รับผลกระทบ (affected rows) จากคำสั่ง Query ที่ส่งเข้ามา:

mysql> Delimiter //
mysql> CREATE PROCEDURE `query`.`row_cnt` (IN command VarChar(60000))
    -> BEGIN
    -> SET @query = command;
    -> PREPARE stmt FROM @query;
    -> EXECUTE stmt;
    -> SELECT ROW_COUNT() AS 'Affected rows';
    -> END //
Query OK, 0 rows affected (0.00 sec)
mysql> Delimiter ;
mysql> Create table Testing123(First Varchar(20), Second Varchar(20));
Query OK, 0 rows affected (0.48 sec)
mysql> CALL row_cnt("INSERT INTO testing123(First,Second) Values('Testing First','Testing Second');");
+---------------+
| Affected rows |
+---------------+
|             1 |
+---------------+
1 row in set (0.10 sec)
Query OK, 0 rows affected (0.11 sec)

คำอธิบาย: ใช้ PREPARE และ EXECUTE เพื่อรัน Dynamic SQL จากพารามิเตอร์ แล้ว ROW_COUNT() คืนจำนวนแถวที่ได้รับผลกระทบจากคำสั่งล่าสุด