MySQL:如果未知项,如何创建新的数据记录,并使用新的ID插入其他表



我在MySQL 5.7.29-0ubuntu0.16.04.1-lo:中有两个表

  • 制造商
manufacturer_id
manufacturer_name
  • 产品
aticle_id
article_name
manufactuer_id

我的目标是插入一个产品,如果还不知道,对制造商来说也是一样的。因此,我在相关列上创建了一个唯一的索引,并执行INSERT IGNORE:

self.curr.execute(""" 
INSERT IGNORE INTO products (
`article_id`, 
`article_name`,
`manufacturer_id`, 
) 
VALUES (%s, %s, %s, %s, %s)
""", (
item['article_id'],         
item['article_name'],
1
)
)

现在的问题是,首先我需要从另一个表中混合出manufacturer_id,如果没有,请创建一个新的制造商并使用新创建的id。

中的某些内容

SELECT manufacturer_id
FROM tbl2
WHERE manufactuer_name = 'Coca Cola'
INSERT IGNORE
...

在插入新产品的同时,我如何快速创建新产品和制造商?

您可以尝试调整插入选择。。

INSERT  INTO products (
`article_id`, 
`article_name`,
`manufacturer_id`
) 
select %s, %s,  manufacturer_id 
from manufacturer 
where manufactuer_name = 'Coca Cola' 

最新更新