sql >> Databáze >  >> RDS >> Mysql

Vytvořte funkci prostřednictvím MySQLdb

DELIMITER příkaz je vestavěný klient prostředí MySQL a je rozpoznán pouze tímto programem (a prohlížečem dotazů MySQL). Není nutné používat DELIMITER pokud spouštíte příkazy SQL přímo prostřednictvím rozhraní API.

Účel DELIMITER má vám pomoci vyhnout se nejasnostem ohledně ukončení CREATE FUNCTION příkaz, kdy samotný příkaz může obsahovat středníky. To je důležité u klienta shellu, kde ve výchozím nastavení ukončuje příkaz SQL středník. Chcete-li odeslat tělo funkce (nebo spouštěče nebo procedury), musíte koncový znak příkazu nastavit na jiný znak.

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

Vzhledem k tomu, že rozhraní API obvykle umožňuje odesílat vždy pouze jeden příkaz SQL, neexistuje žádná nejednoznačnost – rozhraní ví, že žádné středníky v těle vaší definice funkce neukončují celou CREATE FUNCTION prohlášení. Není tedy potřeba měnit zakončení příkazu pomocí DELIMITER .



  1. Jak přidat omezení primárního klíče do sloupců identity do všech tabulek v databázi SQL Server - SQL Server / Výukový program TSQL, část 63

  2. Jak vytvořit Serverless GraphQL API pro MySQL, Postgres a Aurora

  3. SQL Chybějící pravá závorka v pořadí po příkazu

  4. Jak třídit v SQL