DELIMITER
kommandot är en MySQL-skalklient som är inbyggd, och den känns igen endast av det programmet (och MySQL Query Browser). Det är inte nödvändigt att använda DELIMITER
om du kör SQL-satser direkt via ett API.
Syftet med DELIMITER
är att hjälpa dig att undvika oklarheter om avslutandet av CREATE FUNCTION
sats, när själva satsen kan innehålla semikolontecken. Detta är viktigt i skalklienten, där ett semikolon som standard avslutar en SQL-sats. Du måste ställa in satsterminatorn till något annat tecken för att kunna skicka in texten i en funktion (eller trigger eller procedur).
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
Eftersom API vanligtvis tillåter dig att skicka en SQL-sats åt gången, finns det ingen tvetydighet -- gränssnittet vet att eventuella semikolon i kroppen av din funktionsdefinition inte avslutar hela CREATE FUNCTION
påstående. Så det finns inget behov av att ändra satsterminatorn med DELIMITER
.