mySQL 和 Oracle 不一样 , mysql 中的function 中, 没有
CREATE OR REPLACE
如果需要用到这句,可以使用
DROP FUNCTION IF EXISTS `GetUserName`; CREATE FUNCTION `GetUserName`(nUserID INT) ...
代替.
如: (错误)
CREATE OR REPLACE PROCEDURE sp_test() BEGIN SET @z = ‘hello World‘; SELECT @z ; END;
正确:
DELIMITER $$ DROP FUNCTION IF EXISTS `GetUserName`$$ CREATE FUNCTION `GetUserName`(nUserID INT) RETURNS VARCHAR(64) BEGIN DECLARE sUserName VARCHAR(64); SELECT FirstName INTO sUserName FROM Users WHERE Seq = nUserID; RETURN sUserName; END$$ DELIMITER ;