Mysql 将一列移动到另一个表&;按外部ID更新该列
我有一张大桌子,我需要修改结构 下面是表格结构 表名:“文章” 要点:Mysql 将一列移动到另一个表&;按外部ID更新该列,mysql,sql,database,Mysql,Sql,Database,我有一张大桌子,我需要修改结构 下面是表格结构 表名:“文章” 要点: 此表中大约有25000(250000)行 大约有10万个独特的类别 我需要更改的内容 我创建了一个名为“category”的表,然后将category列作为该表的外键 这就是我所期望的: 我需要将类别名称移动到类别表,然后需要使用类别ID更新文章表 表名:“文章” 表名:“类别” 仅仅使用MySQL就可以吗?(我知道如何使用一些PHP脚本和MySQL命令来实现这一点)。但是我在这里问这个问题,因为如果我可以用MySQL来
- 此表中大约有25000(250000)行
- 大约有10万个独特的类别
仅仅使用MySQL就可以吗?(我知道如何使用一些PHP脚本和MySQL命令来实现这一点)。但是我在这里问这个问题,因为如果我可以用MySQL来做,我可以节省很多时间。假设
类别(id)
列是自动填充的(它是自动增量列):
我使用
category(varchar)
和category(int)
来区分同一表中的一列(int)category
和另一列(varchar)category
。当然,这在语法上是不正确的,您必须使用正确且不同的列名,而不是category(xxx)
非常感谢。你为我节省了大约1-2个小时的时间。再次感谢。
+---------+---------------+-------------------+--------------+
| id(int) | details(text) | category(varchar) | tag(varchar) |
+---------+---------------+-------------------+--------------+
+---------+---------------+-------------------+--------------+
| id(int) | details(text) | category(int) | tag(varchar) |
+---------+---------------+-------------------+--------------+
+---------+-------------------+
| id(int) | category(varchar) |
+---------+-------------------+
SET FOREIGN_KEY_CHECKS=0;
INSERT INTO Category( category )
SELECT DISTINCT category(varchar)
FROM Articles;
UPDATE Articles a, Category c
SET a.category(int) = c.id
WHERE a.category(varchar) = c.category
;
SET FOREIGN_KEY_CHECKS=1;