十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这样是会报不允许返回结果集的错误的,我也查了下资料,也有人跟你提出相同的疑问,这本书我是没看过,可能当时作者自己也没实践,书中的内容不一定是对的。
创新互联是一家专注于成都做网站、成都网站制作与策划设计,柯桥网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:柯桥等地区。柯桥做网站价格咨询:18982081108
看它的目的是想返回auto_increment的值,可以这样做
触发器定义改成 into @
CREATE TRIGGER neworder AFTER INSERT ON orders FOR EACH ROW
SELECT NEW.order_num INTO @o_num;
插入值的时候加个select @就可以返回auto_increment值了。
INSERT INTO orders(order_date, cust_id) VALUES(Now(), 10001);
SELECT @o_num;
可以从information_schema架构下的系统表查看
-- 查看约束
SELECT * FROM information_schema.`TABLE_CONSTRAINTS`;
-- 查看触发器
SELECT * FROM information_schema.`TRIGGERS`;
你创建是更新触发器,并不是插入触发器~~~ --插入触发器 ALTER TRIGGER [dbo].[trig_出库1] ON [dbo].[整车出库] for insert as begin update 库存整车 set 库存数量=库存数量- INSERTED.销售数量 from INSERTED where 库存整车.车辆编号=inserted.车辆编号 end
方法/步骤
首先,我们需要确定自己的Mysql数据库的版本,因为my sql数据库是从5.0.2版本才开始支持触发器的。
我推荐大家在电脑的dos命令界面中输入 mysql --version,来获取mysql的版本号,注意version的两个横线和之前的mysql是有一个空格的。
上一步获取了我们的mysql版本号,这一不我们就开始建立触发器了。我采用的以视图加代码的方式创建,我们在数据表中找到要执行删除操作的表,然后右键设计表
这样我们就打开了表的设计页面,可以看到有一个触发器选项卡,我们点击“触发器”
可以看到对应的选项,我们在名里面添加我们需要新建的触发器的名字,在触发选项中选择before或者after,然后在插入、更新、删除三个选项中勾选一个。
这样我们就建立了一个名为“datri”的触发器,在删除操作执行之后触发
然后我们在下面的定义下面的框中输入我们需要执行的操作。然后点击sql预览,可以看到整个触发器的代码
最后就是保存了,由于我们做的是触发器,保存之后,在执行删除操作时,这个触发器才相当于 被执行。