Mysql:同时插入

时间:2010-03-01 10:16:09

标签: mysql insert

在MySQL数据库中使用外键和主键时遇到问题。

现在我有两张桌子p1,p2。

create table p1(
    id int(10) not null auto_increment, 
    type_id int(10) default 1, 
    name varchar(20), 
    primary key(id, type_id)
    );
create table p2(
    id int(10) not null, 
    type_id int(10) not null, 
    name varchar(20), 
    primary key(id, type_id)
    );
alter table p1 add foreign key(id, type_id) references p2(id, type_id) on delete cascade;

当我将值插入p2时,我希望使用值id更新p1,在p1中插入type_id。

insert into p2(name) values('p2');
set @temp = 0;
select last_insert_id() into @temp;
insert into p1(id, type_id, name) values(@temp, name);

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您可以在p2和p3上设置triggers

此外,您的插入查询已被破坏。您指定了三列但只有两个值..

答案 1 :(得分:0)

使用MyISAM表 - 现在。插入将始终按顺序进行。使用InnoDb - 使用线程来执行查询。

或者你的意思是你需要在交易中做到这一点?