快速将列的副本添加到MySQL表

Rob*_*bie 27 mysql sql

我需要快速复制表中的DATETIME列并为其指定新名称.

我在我的表中有一个名为myResults的名为myDate的列,我需要一个查询来在表中创建一个名为newDate的新列,该列具有与myDate列完全相同的数据.

有没有比通过制作新列的明显的两步方法更快的方法,然后复制所有数据(这是一个大表,我正在寻找最快的方法)?

明显的解决方案:

 ALTER TABLE `myResults` ADD `newDate` DATETIME;  
 UPDATE `myResults` SET `newDate` = `myDate`;
Run Code Online (Sandbox Code Playgroud)

Dan*_*llo 18

不幸的是,明显的解决方案是唯一的解决方案.

但请注意,通常不应复制关系数据库中的列.

  • 脚本无法从源列读取数据并在一次传递中更新它吗?(无需先复制数据). (5认同)
  • 好吧,新列实际上只是在脚本运行并更改该列中的数据之前使用默认数据来填充数据库。 (2认同)

小智 16

UPDATE `table_name` SET `new_column` = `existing_column` WHERE `id`=`id`
Run Code Online (Sandbox Code Playgroud)