如何在插入子表时将父表中的值插入子表中

时间:2013-03-25 14:22:18

标签: mysql delimiter

我想在子表中插入一个值,该值在新插入时在父表中生成。

假设,

create table head (
head_id int primary key auto_increment,
table_type varchar(60) );

create table table1 (
t1_id int primary key,
name varchar(60) ,
foreign key (t1_id) references head(head_id)
);

create table table2 (
t2_id int primary key,
name varchar(60) ,
foreign key (t2_id) references head(head_id)
);

创建3个表头和table1,table2。

我希望每当我在table1或table2中插入值时,

insert into table1 (name) values('Hi');

head和table1插入这些值,

select * from head;
id      table_type
.
.
5       table1

select * from table1;

t1_id      name
.
.
5          hi

请注意,head表会自动增加id。将其插入子表table1中。 如何做到这一点,我尝试跟随触发器,但它不起作用。

DELIMITER $$
CREATE
    TRIGGER `t1` BEFORE INSERT
    ON `table1`
    FOR EACH ROW BEGIN
        insert into head (table_type) values ('table1');
        insert into table1 (t1_id,name) values (NEW.head(id),NEW.table1(name));
    END

$$

任何帮助都将不胜感激。

0 个答案:

没有答案