【发布时间】:2017-03-20 08:58:39
【问题描述】:
我是 MySQL 新手,正在尝试执行以下操作:
我有一个表“链接”,其中包含一个名为“project_id”的新列,以及一个名为“project”的现有列。我还有一个名为“projects”的表,其中包含一个名为“id”的列。
我需要使用'links > project'的值来遍历对应的id 'projects > id',然后插入到'links > project_id'中。一旦完成,我们将不再需要 'links > project',因为 'links > project_id' 将成为外键,然后我们可以简单地在 'projects' 中查找它。
我的伪 sql 代码(我是全新的)看起来像:
INSERT INTO links(project_id)
select id
from projects
where project = links(project_id)
谢谢(作为新手提前道歉)
【问题讨论】:
-
您希望新的 project_id 列单独成为一条新记录,还是要在现有记录上填写该列?
-
新的 links(project_id) 列对于现有行是全新的。 project(id) 中的值需要根据 links(project) 的值填充 links(project_id)。
-
所以项目ID已经在项目下的链接表中了?不然项目栏的内容是什么?
-
链接表中新建项目id(int)。在我们不想再使用的链接中有一个项目 (varchar) 列具有项目名称。由于我们现在有一个项目表(带有 id,项目),我们想要读取每一行链接,获取链接(项目),将该值传递给子查询,然后获取项目(项目)的值(项目) = links(project),并将该值插入到 links(project_id)。这样,我们可以杀死 links(project) VARCHAR 并且只有 links(project_id)。