嗨,我有关于mysql触发器的问题,我有下表。当用户插入trip_id,add_type,value时,如何使用触发器自动在add_id字段上进行插入。
CREATE TABLE `additional` ( `trip_num` VARCHAR(8) NOT NULL ,
`add_id` VARCHAR(3) NOT NULL ,
`add_type` VARCHAR(10) NOT NULL ,
`value` VARCHAR(5) NOT NULL );
INSERT INTO `additional` (`trip_num`, `add_id`, `add_type`, `value`) VALUES
('TRP0001', 'UM1', 'type 1', '50'),
('TRP0001', 'UM2', 'type 1', '27'),
('TRP0001', 'UB1', 'type 2', '250'),
('TRP0002', 'UM1', 'type 1', '32'),
('TRP0002', 'UB1', 'type 2', '300'),
('TRP0002', 'UB2', 'type 2', '120'),
('TRP0002', 'UL1', 'type 3', '120');
CREATE TRIGGER tr_bi
BEFORE INSERT
ON additional
FOR EACH ROW
BEGIN
DECLARE counter INT;
SELECT 1 + COUNT(*)
INTO counter
FROM additional
WHERE trip_num = NEW.trip_num
AND add_type = NEW.add_type;
SET NEW.add_id = CONCAT( CASE NEW.add_type WHEN 'type 1' THEN 'UM'
WHEN 'type 2' THEN 'UB'
WHEN 'type 3' THEN 'UL'
ELSE '??' END,
counter );
END;