Dalam MySQL versi 5.0.13 dan kemudian, SQL dinamik boleh dilaksanakan dalam prosedur tersimpan.
Membina Pernyataan SQL Dinamik:
Untuk membina dinamik Penyataan SQL, fungsi CONCAT() digunakan untuk menggabungkan rentetan dan membuat pernyataan SQL secara dinamik. Berikut ialah contoh:
SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
Dalam contoh di atas, @s akan mengandungi pernyataan SQL dinamik:
SELECT col FROM tbl
Menyedia dan Melaksanakan Pernyataan Dinamik:
Setelah penyataan SQL dinamik dibina, ia perlu disediakan dan dilaksanakan:
PREPARE stmt FROM @s; EXECUTE stmt;
Mengagihkan Penyata Disediakan:
Selepas pelaksanaan, pernyataan yang disediakan mesti diagihkan untuk mengeluarkan sumber:
DEALLOCATE PREPARE stmt;
Had:
Dinamik SQL disokong dalam prosedur tersimpan, tetapi bukan dalam fungsi atau pencetus.
Contoh:
Prosedur tersimpan berikut menunjukkan SQL dinamik:
delimiter // CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64)) BEGIN SET @s = CONCAT('SELECT ',col,' FROM ',tbl ); PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt; END // delimiter ;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan SQL Dinamik dalam Prosedur Tersimpan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!