คำสั่ง SQL ที่รองรับ Prepared Statements
MySQL ไม่อนุญาตให้ prepare คำสั่ง SQL ทุกประเภทได้ รองรับเฉพาะประเภทต่อไปนี้:
1. SELECT statements
mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE Companyname = ?'; mysql> SET @A = 'Singla Group.'; mysql> EXECUTE stmt using @A; +--------------+ | tender_value | +--------------+ | 220.255997 | +--------------+
2. INSERT, REPLACE, UPDATE, DELETE (คำสั่งแก้ไขข้อมูล)
mysql> PREPARE stmt1 FROM 'DELETE from Tender WHERE Sr = ?'; mysql> SET @A = 4; mysql> EXECUTE stmt1 using @A; Query OK, 1 row affected
3. CREATE TABLE statement
mysql> PREPARE stmt3 FROM 'CREATE TABLE Student(Id INT, Name Varchar(20))'; mysql> EXECUTE stmt3; Query OK, 0 rows affected
4. SET, DO และหลาย SHOW statements
mysql> PREPARE stmt10 FROM 'SHOW TABLES'; mysql> EXECUTE stmt10; +-------------------+ | Tables_in_query | +-------------------+ | emp | | student | | student_info | | tender | | ... | +-------------------+
คำสั่งอื่นๆ เช่น CREATE DATABASE, ALTER TABLE, DROP TABLE ไม่สามารถ prepare ได้