Mysql
InnoDB,將 TRIGGER 寫入表中
Table1 "user_address" Field "u_id" Field "street_name" Field "locality_name" Table2 "street_master" Field "s_id" Field "s_name"
我應該寫一個觸發器,在插入之前 user_address(table1) 檢查 NEW.street_name 是否已經存在於 table2 的 s_name 中,如果不存在則 NEW.street_name 插入到 table2 中。
我不知道該怎麼做。它只能通過觸發器來完成。
鑑於您的表結構:
create table user_address ( u_id integer auto_increment primary key, street_name varchar(1000), locality_name varchar(1000) ); create table street_master ( s_id integer auto_increment primary key, s_name varchar(1000) );
這將完成這項工作:
DELIMITER $$ create trigger user_address_btrig before insert on user_address for each row begin DECLARE CNT INT; SET CNT = ( select count(*) from street_master where s_name = new.street_name ); IF CNT=0 THEN insert into street_master (s_name) values (NEW.street_name); END IF; end; $$ DELIMITER ;
去測試:
insert into user_address (street_name, locality_name) values ( 'test street', 'test locality' ); select * from street_master where s_name = 'test street';
我建議您閱讀有關觸發器的 MySQL 文件並自己學習。