【发布时间】:2015-02-03 14:34:29
【问题描述】:
假设我有一个名为 tracker 的表,其中包含 (issue_id,ingest_date,verb,priority) 列
我想在此表中添加 50 列。
列是(string_ch_01,string_ch_02,.....,string_ch_50),数据类型为varchar。
有没有更好的方法来使用单个过程添加列而不是执行以下 alter 命令 50 次?
ALTER TABLE tracker ADD COLUMN string_ch_01 varchar(1020);
【问题讨论】:
-
真正的问题是:您认为为什么需要这 50 列?您要解决的问题是什么?按顺序编号的列通常表示错误的(非规范化)数据库设计。而且这个案例听起来好像你真的只需要一个一对多的关系
-
我正在创建 50 列,因为我的工具提供了创建他/她自己的字段集的权限。我可以接受(非规范化)数据库设计,因为它是一种更好的数据挖掘方式。注意:我只需要一对一的关系。
-
hstore列可能是更好的选择。 -
谢谢。但是我的 postgre 版本( 8.0 )不支持它。 'hstore' 仅适用于 9.1 版。你能帮我用一个程序(PL/SQL 程序)来实现它吗?
-
您应该升级到现在仍在维护的版本(例如 9.4),而不是尝试使用那个过时且不受支持的版本。 (顺便说一句:它是 Postgres,而不是 Postgre)
标签: postgresql multiple-columns alter-table query-performance