PostgreSQL - 动态添加大量列

时间:2015-02-03 14:34:30

标签: postgresql multiple-columns alter-table query-performance

假设我有一个名为tracker的表格,列(issue_id,ingest_date,verb,priority)

我想在此表中添加50列。

数据类型为(string_ch_01,string_ch_02,.....,string_ch_50)的{​​{1}}列。

有没有更好的方法使用单个过程添加列而不是执行以下alter命50次?

varchar

1 个答案:

答案 0 :(得分:0)

是的,更好的方法是一次发出一个包含所有列的ALTER TABLE:

ALTER TABLE tracker
   ADD COLUMN string_ch_01 varchar(1020),
   ADD COLUMN string_ch_02 varchar(1020),
   ...
   ADD COLUMN string_ch_50 varchar(1020)
;

当新列有DEFAULT非null子句时,它会特别好,因为每个子句都会重写整个表,而不是只重写一次,如果它们被归为一个ALTER TABLE。