语法错误的时候有时看一下手册中的语法说明或许会有帮助。CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body
嗯, 谢谢了,自己改了一下,发现如果要定义 函数 的话,是需要有返回值类型。发现各个数据库用的SQL不太一样,我是个新手,另外再问两个问题,各位神给看看。1 如果返回值不确定,可以将函数编成功呢?2 想写一个函数,就是看看某个表里面有多少个数据,如果多余10,那么把最前面的三个删掉,并且把第四个至第十个的 ID 变成 1-7;写了一个大概的,帮忙看看吧,跪谢了 BEGIN DECLARE XX INT DEFAULT 1; SET XX = 3; INSERT INTO records(user, content) VALUES('1', 'Garry');SET XX = SELECT COUNT(*) FROM records;// 老说我这有错// 后面不会了RETURN XX; END
mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
-> RETURN CONCAT('Hello, ',s,'!');
-> //
Query OK, 0 rows affected (0.00 sec)
[DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
BEGIN
DECLARE XX INT DEFAULT 1;
SET XX = 3;
INSERT INTO records(user, content) VALUES('1', 'Garry');SET XX = SELECT COUNT(*) FROM records;// 老说我这有错// 后面不会了RETURN XX;
END