MYSQL:复制列但更改类型

时间:2019-12-18 12:30:21

标签: mysql sql duplicates copy multiple-columns

我的需求很简单。

我有一个大表,该表有一个名为A的列。它的类型是int,A目前只能容纳的值是1、2或3。

我想更改表,创建一个名为B的新列,然后将A复制到其中,但B的类型为string / varchar。

我已经检查了MYSQL,我发现它可以非常轻松地将int转换为字符串。

例如之前

index| A |
  0  | 1 |
  1  | 1 |
  2  | 3 |

将变成

index| A | B |
  0  | 1 |'1'|
  1  | 1 |'1'|
  2  | 3 |'3'|

2 个答案:

答案 0 :(得分:1)

您基本上已经在问题中完全描述了您必须做什么:

ALTER TABLE test
ADD COLUMN B VARCHAR(10) -- adjust size as required
;
UPDATE test
SET B = A

Demo on dbfiddle

答案 1 :(得分:1)

您可以添加一个新列,然后将其复制到其中:

alter table mytable add column B varchar(10);
update mytable set B = A;

将使用隐式强制转换。

Demo on DB Fiddle