Danh sách cho phép
MySQL chỉ cho phép prepare các loại câu lệnh sau:
1. SELECT
PREPARE stmt FROM 'SELECT tender_value FROM Tender WHERE Companyname = ?'; SET @A = 'Singla Group.'; EXECUTE stmt USING @A; -- trả về 220.255997
2. INSERT, REPLACE, UPDATE, DELETE (thay đổi dữ liệu)
PREPARE stmt1 FROM 'DELETE FROM Tender WHERE Sr = ?'; SET @A = 4; EXECUTE stmt1 USING @A; -- xóa hàng Sr=4
3. CREATE TABLE
PREPARE stmt3 FROM 'CREATE TABLE Student(Id INT, Name VARCHAR(20))'; EXECUTE stmt3;
4. SET, DO và nhiều câu SHOW
PREPARE stmt10 FROM 'SHOW TABLES'; EXECUTE stmt10; -- liệt kê bảng
Lưu ý: Không phải mọi câu SQL đều có thể prepare (ví dụ: USE, BEGIN, COMMIT...).