通过MySQL查询将一列复制到另一列

39

我有一个带有以下表的mysql数据库...

| id | amount | tax |
+----+--------+-----+
|  1 | 500    |     |
+----+--------+-----+
|  2 | 100    |     |
+----+--------+-----+

我需要删除 amount 列,但在这样做之前,我想将 amount 行中的所有数据移动到 tax 行。如何使用 MySQL 查询完成?请帮忙。


4个回答

97
UPDATE mytable SET tax = amount

之后你可以将它移除

ALTER TABLE mytable DROP COLUMN amount; 

这个查询大约有10万条记录,需要接近25秒的时间,同样地,如果有1亿条记录,那么时间会更长。有没有更快的方法来做到这一点?比如立即复制并引用。 - Sk. Irfan

5
update TABLE_NAME set tax=amount;

will do.


3
UPDATE yTable SET tax = amount

或者重命名而不是复制(速度更快):

ALTER yTable CHANGE amount tax YOURDATATYPE;

在重命名之前删除税。


1
update your_table_name set tax=amount

你可以删除列数据

UPDATE your_table_name SET amount = NULL WHERE amount is not null;

或者您可以删除该列本身。
ALTER TABLE your_table_name DROP COLUMN amount

OP想要删除该列。 - qwerty_so

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接