私のアプリケーションは5種類の車両が必要で、車両の各カテゴリには共通のフィールドがあります。だから、私がしたのは、5つのカテゴリーの車両のそれぞれについて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;
あなたは 'DESC vehicle' –
@NaveenKumar問題だったもの – lovesh
を行って、あなたのテーブルの出力に含まを表示することができます。 –