mysql中的insert 触发器 如何实现添加时判断添加的值在一定范围内,如果不在就不insert表中的功能;

例如:createtabletest1(varint);insertvar的值大于10时就不能进行插入;insertintotest1values(15);---不能被插... 例如:create table test1(var int);
insert var 的值 大于10 时就不能进行插入;
insert into test1 values(15); ---不能被插入;
insert into test1 values(5);---能够进行插入;

如果不能实现帮忙提供其他方法,谢谢(mysql check 约束也没有效果)
展开
 我来答
hu0829
2012-09-19 · TA获得超过2937个赞
知道大有可为答主
回答量:2251
采纳率:50%
帮助的人:2344万
展开全部
你check约束是不是写错了
这样重新加上去试试
alter table test1 add constraint var check (Id<=10);
追问

这有错么?

追答
这个我就不好理解了,我在我这oracle测试是完全可以的,mysql和oracle语法差不多啊
舒舒服服9z
2012-09-20 · TA获得超过522个赞
知道小有建树答主
回答量:524
采纳率:0%
帮助的人:368万
展开全部
问了一下我老师。他告诉我。check在mysql里面还没有人去实现。。也就是说。check是不可以用的。如果想实现你需要的,需要写一个触发器。可是我还没学过触发器。。昨天晚上稍微看了点,也没太看懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b68195
推荐于2017-11-25 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1725万
展开全部
CREATE TRIGGER testref AFTER INSERT ON test1
FOR EACH ROW BEGIN
if NEW.var>10 then
delete from test1 where var=NEW.var;
end if ;
END
更多追问追答
追问
mysql 中不能对触发器对象表进行 insert,update,delete 操作!

create trigger on test1 后 就不能 在触发器程序内部进行 关于 test1的

insert,update,delete 操作

(这个方法之前也想到了,就是存在这个限制555555)
追答
但这样是不能插入不符合条件的记录的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式