Kennisbank
1.000 veelgestelde vragen, 500 tutorials en uitlegvideo's. Hier vind je alleen maar oplossingen!
Maak een MySQL-functie aan op de cloudserver
Deze handleiding beschrijft het gebruik van DELIMITER voor het maken van MySQL-functies op een Infomaniak Cloud-server.
Inleiding
- Bij het maken van functies of opgeslagen procedures in MySQL is het belangrijk om de rol van de delimiter te begrijpen.
- Het correcte gebruik van delimiters is essentieel om syntaxfouten te voorkomen die kunnen ontstaan door de aanwezigheid van meerdere SQL-instructies in één enkele functie- of proceduredefinitie.
Het begrip 'delimiter'
Een delimiter is een teken of een tekenreeks die wordt gebruikt om SQL-instructies in een script te scheiden. Standaard gebruikt MySQL het puntkomma (;) als delimiter. Als u echter functies, opgeslagen procedures of triggers maakt die meerdere SQL-instructies bevatten, moet u de delimiter tijdelijk wijzigen om syntaxfouten te voorkomen.
Wanneer u een functie, procedure of trigger maakt, moet u vaak meerdere SQL-instructies binnen de blokken BEGIN...END gebruiken. Omdat het puntkomma (;) ook wordt gebruikt om deze interne instructies te beëindigen, kan MySQL het eerste puntkomma interpreteren als het einde van de functiedefinitie, wat tot een syntaxfout zou leiden. Om dit probleem te omzeilen, moet u de delimiter tijdens de functiedefinitie wijzigen.
Een eenvoudige functie maken met behulp van aangepaste delimiters
Voordat u de functie definieert, moet u MySQL laten weten dat u een andere delimiter gaat gebruiken. In het volgende voorbeeld wordt $$ gebruikt als de nieuwe delimiter:
DELIMITER $$Met de nieuwe delimiter kunt u nu uw functie definiëren. De CREATE FUNCTION-opdracht bevat de functiebody, waarin u interne SQL-instructies kunt gebruiken die door puntkomma's worden gescheiden, zonder dat dit een probleem vormt:
CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$In dit voorbeeld:
CREATE FUNCTION hello_world(): geeft het begin aan van de definitie van de functiehello_world.RETURNS TEXT: geeft het datatype aan dat de functie retourneert.LANGUAGE SQL: geeft aan dat de taal die voor de functie wordt gebruikt SQL is.BEGIN ... END: omsluit de functiecodes. Hierin wordt het puntkomma gebruikt om de SQL-instructies te scheiden.RETURN 'Hello World';: SQL-instructie die de stringHello Worldretourneert.
Nadat u de functie hebt gedefinieerd, stelt u de delimiter terug op de standaardwaarde (het puntkomma). Hierdoor kunt u in uw volgende scripts nog steeds de gebruikelijke SQL-instructies uitvoeren:
DELIMITER ;Link naar deze veelgestelde vragen: https://faq.infomaniak.com/1150
Is deze veelgestelde vragenlijst nuttig geweest?