我在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'