我有一个关于ALTER TABLE
在一个非常大的表(几乎 3000 万行)上执行命令。
它的其中一列是varchar(255)
我想将其调整为varchar(40)
。
基本上,我想通过运行以下命令来更改我的专栏:
ALTER TABLE mytable ALTER COLUMN mycolumn TYPE varchar(40);
如果过程很长,我没有问题,但似乎我的表格在该过程中不再可读ALTER TABLE
命令。
有更聪明的方法吗?也许添加一个新列,从旧列复制值,删除旧列,最后重命名新列?
Note:我使用 PostgreSQL 9.0。
在 PostgreSQL 9.1 中有一个更简单的方法
http://www.postgresql.org/message-id/[电子邮件受保护] http://www.postgresql.org/message-id/162867790801110710g3c686010qcdd852e721e7a559@mail.gmail.com
CREATE TABLE foog(a varchar(10));
ALTER TABLE foog ALTER COLUMN a TYPE varchar(30);
postgres=# \d foog
Table "public.foog"
Column | Type | Modifiers
--------+-----------------------+-----------
a | character varying(30) |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)