Jadual Rujukan Secara Dinamik dalam Fungsi Prosedur Tersimpan
Apabila mencipta fungsi prosedur tersimpan, anda mungkin menghadapi keperluan untuk menentukan nama jadual secara dinamik untuk bertanya. Cabaran ini timbul kerana pembolehubah tidak boleh digunakan secara langsung dalam klausa FROM pernyataan SQL dalam fungsi disebabkan oleh sekatan pada SQL dinamik.
Pernyataan Disediakan sebagai Penyelesaian
Satu penyelesaian melibatkan penggunaan pernyataan yang disediakan. Dalam prosedur tersimpan, pernyataan yang disediakan boleh digunakan untuk membina pertanyaan SQL dinamik. Walau bagaimanapun, pendekatan ini tidak sesuai untuk fungsi kerana ia melarang penggunaan pernyataan yang disediakan.
Prosedur Tersimpan dengan Parameter OUT
Untuk menangani had ini, kaedah alternatif melibatkan mencipta prosedur tersimpan dengan parameter OUT yang mengembalikan nilai yang dikehendaki. Berikut ialah contoh prosedur tersimpan sedemikian:
CREATE PROCEDURE getName (IN tableName VARCHAR(50), IN myId INT(11), OUT myName VARCHAR(50)) BEGIN SET @GetName = CONCAT('SELECT name INTO @var1 FROM ', tableName, ' WHERE>
Contoh Penggunaan
Untuk menggunakan prosedur tersimpan ini, anda akan menentukan nilai pembolehubah seperti berikut:
SET @tableName = 'tbl'; SET @myId = 1005; SET @name = NULL; CALL getName(@tableName, @myId, @name); SELECT @name;
Teknik ini dengan berkesan membolehkan anda menanyakan nama jadual dinamik dalam fungsi prosedur tersimpan dengan memanfaatkan prosedur tersimpan dengan parameter OUT.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Jadual Dirujuk Secara Dinamik dalam Fungsi Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!