mySQL触发器语法问题,老是报错。
时间:2011-12-13
来源:互联网
有个表card,里面有三个字段:CstarTime和CendTime,类型都是DATE,ID,类型INT。现在我要自动让CstarTime为当前时间,CendTime为当前时间加4年。要怎么弄?我试了好多次,都失败了。
DELIMITER //
CREATE TRIGGER card_bi BEFORE INSERT ON card
FOR EACH ROW
BEGIN
update card set NEW.CstarTime = CURDATE() , NEW.CendTime=DATE_ADD(CURDATE(),INTERVAL 4 YEAR);
END;//
这样可以创建触发器,但却不能插入数据,插入时报错。
改其他各种写法,老是出现CstarTime或是CendTime无法找到变量,到底是为什么啊?
如果只是针对一个字段弄,却可以很轻松的成功。为什么啊?求高手!!
CREATE TRIGGER card_ai
BEFORE INSERT ON card
FOR EACH ROW
set NEW.CstarTime = CURDATE();
SET NEW.CendTime=DATE_ADD(CURDATE(),INTERVAL 4 YEAR);//
这样的话,第一个SET可以成功执行,第二个set就报Unknown system variable 'CendTime'。为什么啊?
DELIMITER //
CREATE TRIGGER card_bi BEFORE INSERT ON card
FOR EACH ROW
BEGIN
update card set NEW.CstarTime = CURDATE() , NEW.CendTime=DATE_ADD(CURDATE(),INTERVAL 4 YEAR);
END;//
这样可以创建触发器,但却不能插入数据,插入时报错。
改其他各种写法,老是出现CstarTime或是CendTime无法找到变量,到底是为什么啊?
如果只是针对一个字段弄,却可以很轻松的成功。为什么啊?求高手!!
CREATE TRIGGER card_ai
BEFORE INSERT ON card
FOR EACH ROW
set NEW.CstarTime = CURDATE();
SET NEW.CendTime=DATE_ADD(CURDATE(),INTERVAL 4 YEAR);//
这样的话,第一个SET可以成功执行,第二个set就报Unknown system variable 'CendTime'。为什么啊?
作者: fenglren 发布时间: 2011-12-13
desc card;
用这个命令看一下你表中有些什么字段,估计是没有 CendTime' 这个字段。
用这个命令看一下你表中有些什么字段,估计是没有 CendTime' 这个字段。
作者: ACMAIN_CHM 发布时间: 2011-12-14
表中有无CendTime字段
作者: wwwwb 发布时间: 2011-12-14
引用 1 楼 acmain_chm 的回复:
desc card;
用这个命令看一下你表中有些什么字段,估计是没有 CendTime' 这个字段。
desc card;
用这个命令看一下你表中有些什么字段,估计是没有 CendTime' 这个字段。
真的有这个字段啊。
作者: fenglren 发布时间: 2011-12-14
引用 2 楼 wwwwb 的回复:
表中有无CendTime字段
表中有无CendTime字段
有的,确定表没有问题,是不是我的语法错了?
作者: fenglren 发布时间: 2011-12-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28