如何将列中的所有值移动到psql中的新列

时间:2016-01-11 05:30:35

标签: psql

这是我的表结构:

Table name:Items
--------------------------------------------------------------
 id   | category_id |  name                |  alt_name
--------------------------------------------------------------
 1   | 1            |  Cochin State Manual |  Cochin
 2   | 1            |  Kuttavum Shikshayum |  Kuttavum
 2   | 1            |  Rajarshi            |  Rajarshihgfh

这里我需要将alt_name列的所有值移动到名为temp.After的新列,将名称列中的所有值移动到alt_name列。其中name和alt_name是字符串类型。新列temp也是字符串字段

1 个答案:

答案 0 :(得分:0)

首先,您需要检查alt_name列的类型,以使temp具有适合数据的正确类型和长度;

\d+ Items

例如,如果alt_nameVARCHAR(64);

-- Add the column
ALTER TABLE Items ADD COLUMN temp VARCHAR(64);

-- Copy alt_name to temp
UPDATE Items SET temp = alt_name;

-- Copy name to alt_name
UPDATE Items SET alt_name = name;

An SQLfiddle to test with

与往常一样,在从互联网上的随机人员运行可能具有破坏性的查询之前,请始终备份数据。