在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);
我怎么能这样做?
答案 0 :(得分:1)
您可以在p2和p3上设置triggers。
此外,您的插入查询已被破坏。您指定了三列但只有两个值..
答案 1 :(得分:0)
使用MyISAM表 - 现在。插入将始终按顺序进行。使用InnoDb - 使用线程来执行查询。
或者你的意思是你需要在交易中做到这一点?