Mysql 创建插入函数
谁能告诉我哪里错了吗Mysql 创建插入函数,mysql,sql,Mysql,Sql,谁能告诉我哪里错了吗 CREATE OR REPLACE FUNCTION ttestt (url varchar(255)) RETURNS VOID AS BEGIN DECLARE @IMAGE_ID INT INSERT INTO images(url,ajoute_par) VALUES ("http://www.example.com","3") SET @IMAGE_ID = SCOPE_IDENTITY() INSERT INTO Dossier
CREATE OR REPLACE FUNCTION ttestt (url varchar(255)) RETURNS VOID AS
BEGIN
DECLARE @IMAGE_ID INT
INSERT INTO images(url,ajoute_par) VALUES ("http://www.example.com","3")
SET @IMAGE_ID = SCOPE_IDENTITY()
INSERT INTO Dossier(nom, etat, dossierImage) VALUES ('NameTest', 1, @IMAGE_ID)
END
我得到了这个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near 'FUNCTION ttestt (url varchar(255)) RETURNS VOID AS
BEGIN
DECLARE @IMAGE_ID' at line 1
根据您的注释和提供的脚本,这里的错误是您的函数中没有return语句。SQL中的函数必须具有某种形式的返回语句。如果不想返回任何值,请使用存储过程 正如@GordonLinoff所说,函数不能用于更改表。同样,还有更多使用存储过程的原因
关于SCOPE_IDENTITY(),您能告诉我们错误,或者告诉我们您使用的是什么SQL变体吗?如果您使用的是SQL Server,函数不能返回
void
,函数不能修改表,您应该使用output
子句返回ID。@暂停因为我只是更新了我的IDanswer@GordonLinoff是的,我正在使用sql server。。我不想使用SCOPE_IDENTITY(),我想同时插入到两个tables@koreangirl . . . scope\u identity()
甚至不是MySQL函数。