sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Vanskeligheder ved at skrive Stored Procedure i MYSQL

Som dokumenteret under Definition af lagrede programmer :

  • Hvis du bruger mysql klientprogram til at definere et lagret program indeholdende semikolontegn, opstår der et problem. Som standard er mysql selv genkender semikolon som en sætningsadskiller, så du skal omdefinere afgrænseren midlertidigt for at forårsage mysql at sende hele den lagrede programdefinition til serveren.

    Det samme gælder for phpMyAdmin.

  • For at omdefinere mysql afgrænser, brug adskiller kommando.

    Ikke alle versioner af phpMyAdmin genkender adskilleren kommando; i stedet kan man bruge Delimiter inputboks under SQL-inputfeltet:se Hvordan skriver jeg en SP i phpMyAdmin (MySQL)?

  • Det følgende er et eksempel på en funktion, der tager en parameter, udfører en operation ved hjælp af en SQL-funktion og returnerer resultatet. I dette tilfælde er det unødvendigt at bruge delimiter fordi funktionsdefinitionen ikke indeholder nogen intern ; sætningsafgrænsere:

    mysql> CREATE FUNCTION hello (s CHAR(20))
    mysql> RETURNS CHAR(50) DETERMINISTIC
        -> RETURN CONCAT('Hello, ',s,'!');
    Query OK, 0 rows affected (0.00 sec)
    

    I dit tilfælde kan du fjerne BEGIN ... END sammensat sætningsblok og undgå behovet for at ændre skilletegn.




  1. Indlejret hvis i et valg-hvor for en betinget dynamisk filtrering

  2. Sådan importerer du stor sql-fil i phpmyadmin

  3. Sletning af felter fra databasetabeller med phpMyAdmin

  4. [Docker]:At forbinde PHPMyAdmin til MySQL virker ikke