我正在使用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`
但这违反了语法
有没有比更新更好的方法了?
答案 0 :(得分:0)
您不能在同一条语句中更改表结构和更新数据。除非它是生成的列,否则您需要分别使用ALTER TABLE和UPDATE。