提问人:Him 提问时间:10/24/2023 最后编辑:BarmarHim 更新时间:10/25/2023 访问量:48
如何使用外键值向MySQL输入数据?
How to enter data to MySQL by using foreign key value?
问:
我有 2 张表:
- 表 1 - 产品(product_id、product_name、价格)
- 表 2 - ORDERS(order_id、product_id、数量),其中 product_id 是表 1 中的 FOREIGN KEY
我有一个产品:
product_id=1
product_name='Computer'
price=2500
如何使用表 PRODUCT 中的product_name而不是输入product_id,将新数据输入到 ORDERS 表(即添加新订单)。我想输入(例如在存储过程中)product_name(例如“计算机”),并在输出中将一个新行添加到具有相关product_id(即 1)的表 ORDERS 中
如果我使用INSERT命令将数据输入到表ORDERS中,我需要将值写为: (1,1,2)- order_id、product_id、数量。 但是我想写成:(1, 'Computer', 2),以便它自动将 1 而不是 'Computer' 添加到表 ORDERS。
答:
0赞
Adarsh
10/25/2023
#1
如果已将其创建为product_id,则期望在插入时提供 id 本身,而不是该 ID 的值。这里可以做的一件事是在插入语句中有一个子查询:
insert into ORDERS (order_id, product_id, quantity)
values (1, (select max(product_id) from PRODUCT where product_name='Computer'), 2);
子查询将获取传递的字符串的product_id。我使用了max(product_id),以防万一您在PRODUCT表中有重复项。
请注意,如果您使用的是存储过程,那么也可以使用声明的变量作为两个步骤来完成。
评论
0赞
Him
10/25/2023
行得通!谢谢你,伙计
评论