保留/分配另一个表中的新行,每行添加一行

时间:2014-03-10 14:39:45

标签: mysql sql database

我想知道是否可以执行以下操作:

  • 在将数据插入表a后,将在表b中自动创建一行,并且Note_Id(其主键)将存储在其中一个属性中(这是一个引用表中主键的外键) b)在表a。

 CREATE TABLE table_a ( D_Id int(5) NOT NULL AUTO_INCREMENT,
 User_Id int(8) not null,
 Note_Id int(5) not null, -- this is the foreign key that points to table b 
 PRIMARY KEY (D_Id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 CREATE TABLE table_b ( Note_Id int(5) NOT NULL AUTO_INCREMENT,
 Note_Description varchar(50) null, 
 PRIMARY KEY (Note_Id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

谢谢!

 delimiter $$
 CREATE TRIGGER ins_Document
 AFTER INSERT ON TABLE_A FOR EACH ROW
 BEGIN
   set @notenum=(Select max(Note_Id) from TABLE_B);
   if(@notenum=0) then begin new.Note_Id=1;
   end;
   else
     new.Note_Id=@notenum+1;
   end if;
 INSERT INTO TABLE_B (Note_Id) VALUES (NEW.Note_Id); 
 END$$
 delimiter ;

1 个答案:

答案 0 :(得分:0)

了解触发器:Create Trigger 在这里,您可以对插入到表中的事件做出反应,并为此定义相应的操作。