You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Table1的Fruit_ID对应填充到Table2?

解决步骤

你的需求是先填充Table2的空Fruit_ID值,再建立外键约束——之前执行的ALTER TABLE添加外键语句是用来做数据约束的,不能自动填充已有空值,所以得按下面两步来:

1. 批量填充Table2的Fruit_ID

根据Fruit_Name匹配Table1,把对应Fruit_ID更新到Table2中。不同数据库的SQL写法略有差异,以下是常用版本:

MySQL/MariaDB 写法

UPDATE Table2 t2
JOIN Table1 t1 ON t2.Fruit_Name = t1.Fruit_Name
SET t2.Fruit_ID = t1.Fruit_ID
WHERE t2.Fruit_ID IS NULL; -- 仅更新未填充的空值行

SQL Server 写法

UPDATE t2
SET t2.Fruit_ID = t1.Fruit_ID
FROM Table2 t2
INNER JOIN Table1 t1 ON t2.Fruit_Name = t1.Fruit_Name
WHERE t2.Fruit_ID IS NULL;

执行完这条语句后,Table2中所有和Table1匹配Fruit_Name的行,都会自动填上对应的Fruit_ID。

2. 检查数据有效性并添加外键约束

填充完成后,先确认Table2中没有无效的Fruit_ID(即不在Table1中存在的值),可以执行这条查询排查:

SELECT t2.*
FROM Table2 t2
LEFT JOIN Table1 t1 ON t2.Fruit_ID = t1.Fruit_ID
WHERE t1.Fruit_ID IS NULL AND t2.Fruit_ID IS NOT NULL;

如果返回空结果,说明所有Fruit_ID都合法,此时再执行你之前的外键添加语句:

ALTER TABLE Table2 ADD FOREIGN KEY (Fruit_ID) REFERENCES Table1(Fruit_ID);

这样就能完成数据填充+约束建立的需求了。

内容的提问来源于stack exchange,提问作者Dom Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:35:17