我的应用程序需要5种不同类别的车辆,每种车辆都有一些共同的领域。所以我所做的就是为车辆的5个类别vehicle1
,vehicle2
,vehicle3
,vehicle4
,,vehicle5
的每一个创建5个表格,然后创建第6个表格“车辆”来存储每个车辆通用的字段。现在,无论何时输入与特定车辆相关的信息(该车辆是INSERT INTO
该特定车辆的类别表),都会执行一个触发器,将公共字段插入vehicle
表中。所以触发这个样子mysql触发器部分工作
CREATE TRIGGER `tr_vehicle1_info` AFTER INSERT ON `vehicle1`
FOR EACH ROW insert into vehicle(categ,year,make,model,vin,user_id,principal_driver) values (1,new.year,new.make,new.model,new.vin,new.user_id,new.principal_driver)
CREATE TRIGGER `tr_vehicle1_info` AFTER INSERT ON `vehicle2`
FOR EACH ROW insert into vehicle(categ,year,make,model,vin,user_id,principal_driver) values (2,new.year,new.make,new.model,new.vin,new.user_id,new.principal_driver)
CREATE TRIGGER `tr_vehicle1_info` AFTER INSERT ON `vehicle3`
FOR EACH ROW insert into vehicle(categ,year,make,model,vin,user_id,principal_driver) values (3,new.year,new.make,new.model,new.vin,new.user_id,new.principal_driver)
等等.....
现在的问题是,当我插入信息,车辆的触发器执行和值表中插入vehicle
但对于vehicle
表中的categ
字段,总是插入0
。 categ
字段的类型是tinyint(1)
。
我不明白什么是错的。帮帮我?
更新车辆的
模式
CREATE TABLE IF NOT EXISTS `vehicle` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`categ` tinyint(1) NOT NULL,
`year` char(4) NOT NULL,
`make` varchar(30) NOT NULL,
`model` varchar(50) NOT NULL,
`vin` varchar(25) NOT NULL,
`user_id` int(11) NOT NULL,
`principal_driver` int(11) DEFAULT NULL,
`secondary_driver` varchar(30) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
KEY `vin` (`vin`,`user_id`)
) ENGINE=InnoDB;
你能证明你的表的输出中'递减vehicle' – 2012-02-14 07:49:50
@NaveenKumar做 – lovesh 2012-02-14 08:03:59
究竟是什么问题。 – 2012-02-14 08:27:57