sql >> Database >  >> RDS >> Mysql

Functie maken via MySQLdb

De DELIMITER commando is een ingebouwde MySQL-shellclient en wordt alleen door dat programma (en MySQL Query Browser) herkend. Het is niet nodig om DELIMITER . te gebruiken als u SQL-instructies rechtstreeks uitvoert via een API.

Het doel van DELIMITER is om u te helpen onduidelijkheid te voorkomen over de beëindiging van de CREATE FUNCTION statement, wanneer het statement zelf puntkomma's kan bevatten. Dit is belangrijk in de shell-client, waar standaard een puntkomma een SQL-instructie beëindigt. U moet de instructieterminator op een ander teken instellen om de hoofdtekst van een functie (of trigger of procedure) in te dienen.

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

Aangezien de API u doorgaans toestaat om één SQL-instructie tegelijk in te dienen, is er geen dubbelzinnigheid -- de interface weet dat puntkomma's in de hoofdtekst van uw functiedefinitie niet de hele CREATE FUNCTION beëindigen uitspraak. Het is dus niet nodig om de instructieterminator te wijzigen met DELIMITER .



  1. Tellen van het aantal samengevoegde rijen in de linker join

  2. Bengaalse tekst wordt niet weergegeven in Unicode CSV-bestand

  3. Hoe een vierkant in SQL te berekenen

  4. Android ListView:hoe databasequery's in bindView() vermijden? Moet een tot veel relatiegegevens ophalen