Kể từ khi DECLARE workval bigint(20);
là dòng đầu tiên có dấu chấm phẩy ở cuối, tôi nghi ngờ bạn đã quên thay đổi dấu phân cách trước khi nhập mã hàm (mặc dù điều này phụ thuộc vào ứng dụng khách bạn đang sử dụng).
Hãy thử thay đổi mã của bạn thành:
DELIMITER #
CREATE FUNCTION nextval (seq_name varchar(100))
...
END#