PostgreSQL ALTER TABLE中改变数据类型时USING的用法
在修改表字段类型的时候使用Using来进行显示的转换类型。 原文说明: SET DATA TYPE 大致意思是:转换类型的时候有隐含类型转换的时候,会自动转换,如果没有,那么就必须使用using指定一下转换规则。 1. 建表 create table 101(id integer);
2. 插入数据 insert into tb10 select generate_series(1,5);
3. 把id的int变为varchar postgres=# alter table tb101 alter id type varchar;
ALTER TABLE
因为int转varchar有隐式的转换,故可以自动转换过去。 postgres=# d tb101
Table "public.tb101"
Column | Type | Modifiers --------+-------------------+-----------
id | character varying |
4. 把id的varchar变为int postgres=# alter table tb101 alter id type int;
ERROR: column "id" cannot be cast automatically to type integer
HINT: Specify a USING expression to perform the conversion.
在没有隐式的转换下,就需要指定Using来显示的转换。 5. 使用Using进行类型转换 postgres=# alter table tb101 alter id type int using id::int;
ALTER TABLE postgres=# d tb101 Table "public.tb101" Column | Type | Modifiers --------+---------+----------- id | integer |
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Xcode如何更改哪个viewController在启动时首先加载
- 【xml String format】error: Multiple substitutions spec
- applicationContext.xml 配置文件的存放位置
- ruby-on-rails – 在Rails 4中测试一个after_commit挂钩,启
- 项目实战(三)—真正了解VB吗?
- XML和Java对象之间的转换
- c# – JSON反序列化后无法访问属性到动态
- c# – OnPointerEnter和OnPointerExit未在Unity 5.3.4中注册
- 微信小程序开发--从block盒式布局到Flex弹性布局
- ruby-on-rails – 需要更改S3 Bucket(Carrierwave / Fog)中