创建一列以复制另一列中的数据

时间:2018-09-19 11:28:10

标签: mysql sql

我正在使用MySQL,我想在表上添加一列,但是它是默认值,我想从另一列复制数据,例如:

我有包含2个简单列的表测试:

SELECT * FROM TEST

+----+-------------+
| ID | DESCRIPTION |
+----+-------------+
|  1 | test 1      |
|  2 | test 2      |
|  3 | test 3      |
|  4 | test 4      |
+----+-------------+

假设要从描述中获取数据,我想在同一张表上添加一列,所以如果我运行:

ALTER TABLE TEST ADD COLUMN DESCRIPTION2 VARCHAR(20)

我会得到:

SELECT * FROM TEST

+----+-------------+--------------+
| ID | DESCRIPTION | DESCRIPTION2 |
+----+-------------+--------------+
|  1 | test 1      | test 1       |
|  2 | test 2      | test 2       |
|  3 | test 3      | test 3       |
|  4 | test 4      | test 4       |
+----+-------------+--------------+

我可以通过alter table之后的简单更新轻松地完成此操作,但是由于我打算执行的表是巨大的,因此我宁愿在单个语句中执行以提高性能,但是我不知道是否这是有可能的,因为我没有在MySQL文档中找到与此事有关的任何内容。

请确定,我尝试运行:

ALTER TABLE TEST ADD COLUMN DESCRIPTION2 VARCHAR(20) DEFAULT `DESCRIPTION`

但这违反了语法

有没有比更新更好的方法了?

1 个答案:

答案 0 :(得分:0)

您不能在同一条语句中更改表结构和更新数据。除非它是生成的列,否则您需要分别使用ALTER TABLE和UPDATE。