Saya akan menghapus titik koma setelah END
.
...
END
|
DELIMITER ;
Kembali komentar Anda, Anda tidak dapat menggunakan pembatas saat ini saat mendeklarasikan pembatas baru. Kedengarannya membingungkan, tetapi pertimbangkan jika Anda melakukan ini:
DELIMITER |;
Sekarang MySQL akan berpikir pembatasnya adalah "|;" (dua karakter, pipa dan titik koma). Jika Anda memikirkannya, DELIMITER
harus diperlakukan dengan cara khusus oleh klien MySQL. Itu satu-satunya pernyataan yang tidak bisa diikuti oleh pembatas saat ini.
Jadi saat menyetel pembatas ke pipa, lakukan ini:
DELIMITER |
Saat mengaturnya kembali ke titik koma, lakukan ini:
DELIMITER ;
FWIW, saya menjalankan yang berikut ini tanpa kesalahan pada database pengujian lokal saya di MySQL 5.0.75:
DROP FUNCTION IF EXISTS PersonName;
DELIMITER |
CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
DECLARE pname CHAR(20) DEFAULT '';
SELECT name INTO pname FROM family WHERE ID=personID;
RETURN pname;
END
|
DELIMITER ;