2016-11-30 31 views
0

我使用MySql Workbench和IM无法弄清楚这一点。Mysql函数 - 不能找出它

 delimiter $$ 
CREATE function `klientu_copy`() 
DECLARE v_laiks TIMESTAMP; 
DECLARE v_liet VARCHAR(200); 
set v_laiks = now(); 
set v_liet = current_user; 

if (TG_OP = 'DELETE') THEN 
insert into kopija_klienti values (v_liet,v_laiks,old.Vards,old.Uzvards,null,null); 
ELSEif (TG_OP = 'INSERT') THEN 
insert into kopija_klienti values (v_liet,v_laiks,null,null,new.Vards,new.Uzvards); 
ELSEif (TG_OP='UPDATE') THEN 
insert into kopija_klienti values (v_liet,v_laiks,old.Vards,old.Uzvards,new.Vards,new.Uzvards); 
end if; 

END; $$ 

delimiter ; 

二十一点24分22秒错误代码:1064您有一个错误的SQL语法;检查与你的MySQL服务器版本相对应的手册,在''klientu_copy'()附近使用正确的语法BEGIN DECLARE v_laiks timestamp; DECLARE v_liet varchar; s'在第1行0.000秒

尝试设置@variable/declare @variable,无法弄清楚这一点。我还在学习:)

+0

您缺少a)在第一次插入时插入到kopija_klienti值(v_liet,v_laiks,old.Vards,old.Uzvards,null,null;' –

+0

忘记关闭了)吗? –

+0

谢谢,甚至没有看到...但仍然有同样的问题:) –

回答

-1

必须指定varchar变量的长度,就像varchar(100)

而且添加结束(为先插入。

+0

是的,但这不是代码中的第一个也是唯一的错误。 –

+0

是的,你也没有添加关闭'('为第一个插入,我已经编辑了我的答案,为什么投票呢? –

+0

继续搜索,有更多的错误,我至少有5个总计 –