Heim > Datenbank > MySQL-Tutorial > Wie kann ich dynamisches SQL in gespeicherten MySQL-Prozeduren erstellen und verwenden?

Wie kann ich dynamisches SQL in gespeicherten MySQL-Prozeduren erstellen und verwenden?

Barbara Streisand
Freigeben: 2024-12-23 07:19:17
Original
706 Leute haben es durchsucht

How Can I Build and Use Dynamic SQL within MySQL Stored Procedures?

Dynamic SQL in gespeicherten MySQL-Prozeduren erstellen

Dynamic SQL, eingeführt in MySQL 5.0.13, ermöglicht gespeicherten Prozeduren die Erstellung von SQL-Anweisungen zur Laufzeit .

So erstellen und verwenden Sie dynamisches SQL in einem Stored Prozedur:

Erstellen Sie eine gespeicherte Prozedur wie folgt:

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 ;
Nach dem Login kopieren

Erklärung:

  • Definieren Sie die @s-Variable für Speichern Sie die dynamische SQL-Anweisung.
  • Verwenden Sie die PREPARE-Anweisung, um die dynamische SQL-Anweisung vorzubereiten Ausführung.
  • Führen Sie die vorbereitete Anweisung mit EXECUTE aus.
  • Geben Sie die Zuordnung der vorbereiteten Anweisung mit DEALLOCATE PREPARE frei.

Beispiel:

Um eine bestimmte Spalte aus einer bestimmten Spalte auszuwählen Tabelle:

CALL dynamic('employees', 'salary');
Nach dem Login kopieren

Hinweis:

Dynamic SQL wird in Funktionen oder Triggern nicht unterstützt. Weitere Informationen finden Sie in der MySQL-Dokumentation.

Das obige ist der detaillierte Inhalt vonWie kann ich dynamisches SQL in gespeicherten MySQL-Prozeduren erstellen und verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage