postgresql 修改列类型操作
习惯了Oracle中:
ALTERTABLE表名ALTERCOLUMN列名新的数据类型[(长度)]NULL或NOTNULL
这种修改方式的时候,在pg中:
highgo=#createtablep1(idint,pswdvarchar(30),timetimestamp);
CREATETABLE
highgo=#insertintop1selectgenerate_series(1,500000),md5('random()::text'),clock_timestamp();
错误:对于可变字符类型来说,值太长了(30)
会发现无法添加成功呢?
highgo=#altertablep1altercolumnpswdtextNULL;
错误:语法错误在"text"或附近的
LINE1:altertablep1altercolumnpswdtextNULL;
我们来看一下pg中的语法:
highgo=#\hauto whereactionisoneof: ADD[COLUMN][IFNOTEXISTS]column_namedata_type[COLLATEcollation][column_constraint[...]] DROP[COLUMN][IFEXISTS]column_name[RESTRICT|CASCADE] ALTER[COLUMN]column_name[SETDATA]TYPEdata_type[COLLATEcollation][USINGexpression] ALTER[COLUMN]column_nameSETDEFAULTexpression highgo=#altertablep1alterCOLUMNpswdtypetext; ALTERTABLE highgo=#\dp1 Table"public.p1" Column|Type|Collation|Nullable|Default --------+-----------------------------+-----------+----------+--------- id|integer||| pswd|text||| time|timestampwithouttimezone|||
成功!
补充:postgresql修改字段类型为数组类型(text改为text[])
语法:
altertabletablenamealtercolumnnametypeoldcolumntypeUSINGcolumnname::newcolumntype
eg:
altertabledirty_trackalterlabelstypetextUSINGlabels::text[];
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短