Mysql
 sql >> Database >  >> RDS >> Mysql

Crea una funzione tramite MySQLdb

Il DELIMITER Il comando è un client shell MySQL integrato ed è riconosciuto solo da quel programma (e da MySQL Query Browser). Non è necessario utilizzare DELIMITER se esegui istruzioni SQL direttamente tramite un'API.

Lo scopo di DELIMITER serve per evitare ambiguità sulla cessazione di CREATE FUNCTION istruzione, quando l'istruzione stessa può contenere caratteri punto e virgola. Questo è importante nel client shell, dove per impostazione predefinita un punto e virgola termina un'istruzione SQL. È necessario impostare il terminatore dell'istruzione su un altro carattere per inviare il corpo di una funzione (o trigger o procedura).

CREATE FUNCTION trivial_func (radius float) 
    RETURNS FLOAT

    BEGIN
    IF radius > 1 THEN
        RETURN 0.0; <-- does this semicolon terminate RETURN or CREATE FUNCTION?
    ELSE
        RETURN 1.0;
    END IF;
END

Poiché l'API in genere ti consente di inviare un'istruzione SQL alla volta, non c'è ambiguità:l'interfaccia sa che qualsiasi punto e virgola all'interno del corpo della definizione della tua funzione non termina l'intero CREATE FUNCTION dichiarazione. Quindi non è necessario modificare il terminatore dell'istruzione con DELIMITER .