Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengakses Jadual Dinamakan Dinamik Dalam Fungsi SQL?

Bagaimanakah Saya Boleh Mengakses Jadual Dinamakan Dinamik Dalam Fungsi SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 04:20:031039semak imbas

How Can I Access Dynamically Named Tables Within a SQL Function?

Nama Jadual Dinamik dalam Fungsi Prosedur Tersimpan

Dalam SQL, fungsi tidak boleh diubah dan tidak boleh mengubah suai data. Oleh itu, pernyataan yang disediakan tidak boleh digunakan dalam fungsi, yang menimbulkan cabaran apabila cuba mengakses jadual dengan nama dinamik.

Untuk mengatasi isu ini, prosedur tersimpan boleh digunakan. Prosedur tersimpan boleh menggunakan penyata yang disediakan dan parameter OUT untuk mengembalikan nilai.

Berikut ialah contoh prosedur tersimpan yang boleh mendapatkan semula nama daripada jadual yang ditentukan secara dinamik:

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>

Untuk menggunakan prosedur , parameter IN ditetapkan dengan nama jadual dan ID, manakala parameter OUT digunakan untuk mendapatkan semula nama.

SET @tableName = 'tbl';
SET @myId = 1005;
SET @name = NULL;
CALL getName(@tableName, @myId, @name);
SELECT @name;

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Jadual Dinamakan Dinamik Dalam Fungsi SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn