我有一个带varchar主键的表,这是其他一些表的预备键。
类似的东西:
ID-------------NAME
1011001020-----product 1
1011001022-----product 2
1011001025-----product 3
然后,我有这个数组
array(
'1011001020',
'1011001022',
'1011001025',
'x',
'y'
)
此数组将用于在具有FK的另一个表中插入值,因此如果任何值不是第一个表上的ID,则INSERT查询将生效。
在尝试插入之前,如何找到'x'和'y'。我想避免从表一中选择所有id并进行PHP比较,因为有很多记录。我宁愿采用MySQL方法
答案 0 :(得分:0)
我建议采用以下程序:
第二步和第三步可以在SQL中轻松完成:
delete from temporarytable
where tt.otherid not in (select ot.otherid from othertable ot);
alter table temporarytable
add constraint fk_othertable foreign key (otherid) references othertable(otherid);
您可以随意加载数据。为了速度,我建议load data infile
。
答案 1 :(得分:0)
试一试。在服务器上测试,产品是新表,只插入项目表中数组中的行。
INSERT INTO `products` ( `name` )
SELECT `name` FROM `items` WHERE `vendor_id` IN ( 1,2,3,4,.... )