mysql: 复制表内容插入自身(数据膨胀)
一个比较特殊的需求,要把某个表的内容复制3倍量
把每一条记录拆分成 ABC三份(名字后缀增加ABC后缀区分,名字字段是唯一索引)
首先确定了原表有325行,id最大一行值为 326
//保险起见先备份原表(其实并不是必须)
CREATE TABLE `mTable_bak` LIKE `mTable`;
INSERT INTO `mTable_bak` SELECT * FROM `mTable`;
//复制成分身B
INSERT INTO `mTable`(`shequ`, `name`, `addr`, `wuguan`, `contact`, `contactphone`)
SELECT `shequ`, CONCAT(`name`,'B'), `addr`, `wuguan`, `contact`, `contactphone`
FROM `mTable`
WHERE `id` <= 326;
//复制成分身C
INSERT INTO `mTable`(`shequ`, `name`, `addr`, `wuguan`, `contact`, `contactphone`)
SELECT `shequ`, CONCAT(`name`,'C'), `addr`, `wuguan`, `contact`, `contactphone`
FROM `mTable`
WHERE `id` <= 326;
//最后改变原来的数据加上 A后缀
UPDATE `xiaoqu` SET `name`=CONCAT(`name`,'A') WHERE `id` <= 326;
