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
Lepaskan: 2024-11-07 04:20:03
asal
1036 orang telah melayarinya

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>
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan