【发布时间】:2011-09-12 14:37:17
【问题描述】:
是否可以将 SQL 表中所有记录的数据从 A 列复制到 B 列?
【问题讨论】:
标签: sql
是否可以将 SQL 表中所有记录的数据从 A 列复制到 B 列?
【问题讨论】:
标签: sql
这个怎么样
UPDATE table SET columnB = columnA;
这将更新每一行。
【讨论】:
UPDATE table SET columnA = 'new value', columnB = columnA。就像其他答案所说 - 不要忘记 WHERE 子句只更新需要的内容。
UPDATE table_name SET
destination_column_name=orig_column_name
WHERE condition_if_necessary
【讨论】:
UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
如果未启用安全模式,这将更新该列中的所有行。
UPDATE table SET columnB = columnA;
如果启用了安全模式,那么您将需要使用 where 子句。 我使用大于0的主键基本上都会更新
UPDATE table SET columnB = columnA where table.column>0;
【讨论】:
PostgresSQL中如果要将一列复制到另一个数据类型不同的列,必须先转换/转换为数据类型,否则会返回
查询 1 错误:错误:列“test_date”是时间戳类型,没有 时区,但表达式的类型字符不同第 1 行:更新 表名设置 test_date = date_string_col ^ 提示:您需要重写或转换表达式。
varchar 转时间戳示例:
update table_name set timestamp_col = date_string_col::TIMESTAMP;
varchar 转 int 的例子:
update table_name set int_column = string_col::INTEGER;
但是任何列类型(除了文件或类似的)都可以复制到字符串(character varying)而不强制转换类型。
【讨论】: