SQL中创建触发器,要求插入的值不能小于表W中的值,下面这个写法无论插入什么都失败,求解啊!!!
答案:2 悬赏:50 手机版
解决时间 2021-03-31 06:55
- 提问者网友:情歌越听越心酸
- 2021-03-30 09:36
SQL中创建触发器,要求插入的值不能小于表W中的值,下面这个写法无论插入什么都失败,求解啊!!!
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-03-30 10:00
你这样做,触发器是你插入完成之后再触发的,也就是说你这条记录已经插进去了,
如果你刚刚插入的是最大值,(select max(sage) from worker)=(select sage from inserted)
如果你刚刚插入的不是最大值,(select max(sage) from worker)>(select sage from inserted)
所以你的条件始终是成立的,所以都是插入失败。追问我是从三种情况来试的,大于的,小于的,等于的,结果是年龄sage必须大于0,插入失败'追答if(select max(sage) from worker)>=(select sage from inserted)
条件改一下,改成
if(select max(sage) from worker where id !=(select id from inserted))>=(select sage from inserted)
语句中的id是表的唯一键的字段名,这样试试,追问可以拉~!!!!!!!!不过可不可以解释下select max(sage) from worker where id !=(select id from inserted))这句呢
如果你刚刚插入的是最大值,(select max(sage) from worker)=(select sage from inserted)
如果你刚刚插入的不是最大值,(select max(sage) from worker)>(select sage from inserted)
所以你的条件始终是成立的,所以都是插入失败。追问我是从三种情况来试的,大于的,小于的,等于的,结果是年龄sage必须大于0,插入失败'追答if(select max(sage) from worker)>=(select sage from inserted)
条件改一下,改成
if(select max(sage) from worker where id !=(select id from inserted))>=(select sage from inserted)
语句中的id是表的唯一键的字段名,这样试试,追问可以拉~!!!!!!!!不过可不可以解释下select max(sage) from worker where id !=(select id from inserted))这句呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯