在修改表字段类型的时候使用Using来进行显示的转换类型。

原文说明:

SET DATA TYPE 
  This form changes the type of a column of a table. Indexes and simple table constraints involving the column willbe automatically converted to use the new column type by reparsing the originally supplied expression. The optional COLLATE clause specifies a collation for the new column; if omitted, the collation is the default for the new column type. The optional USING clause specifies how to compute the new column value from the old; if omitted, the default conversion is the same as an assignment cast from old data type to new. A USING clause must be provided if there is no implicit or assignment cast from old to new 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 | 

id::int 也可以使用cast(id as int)

PostgreSQL ALTER TABLE中改变数据类型时USING的用法转相关推荐

  1. url oracle default schema,oracle @Table中使用schema时insert报错

    第一部分 测试情况如下: maven修改 com.alibaba druid 1.1.10 实体类 @Table(name = "dpcenter.xeuser") public ...

  2. 有一动态生成的TABLE,当点击该TABLE中的按钮时,如何得到该按钮所在行的某一列的值啊?...

    前几天遇到此问题: 终于得到解决. protected   System.Web.UI.HtmlControls.HtmlTable   t_copy;         private   void ...

  3. MySQL中定义fk语句_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (4)

    外键和其他约束 InnoDB和NDB存储引擎支持 FOREIGN KEY 和 REFERENCES 子句,这些存储引擎实现了ADD [CONSTRAINT [symbol]] FOREIGN KEY ...

  4. mysql更改数据语句6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句(1)

    ALTER TABLE 语句 ALTER TABLE更改表的结构.例如,可以添加或删除列.创建或销毁索引.更改现有列的类型.重命名列或表本身.还可以更改表特性,例如用于表或表注释的存储引擎. ●要使用 ...

  5. mysql alter table_mysql ALTER TABLE 的用法

    在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变.常见的改变如下: 加一个栏位 删去一个栏位 改变栏位名称 改变栏位的资料种类 以上列出的改变并不是所有可能的改变.ALTER TA ...

  6. mysql alter table 速度慢_MySQL中ALTER TABLE时的性能问题

    当对于一个大表进行ALTER TABLE的时候,性能问题就产生了.MySQL大部分改动的步骤如下:根据新的表结构创建一个空表,从旧表中把数据取出来插入到新表中,在删除旧表.这是个非常漫长的过程.许多人 ...

  7. postgresql表中间加列_PostgreSQL ALTER TABLE命令

    PostgreSQL的ALTER TABLE命令用来添加,删除,或修改现有表中的列. www.yiibai.com 还可以使用ALTER TABLE命令添加和删除现有表上的各种制约因素. yiibai ...

  8. alter table add column多个字段_SQL对表中字段的操作 alter

    ALTER TABLE 语句用于在现有表中添加.删除或修改列. 注意不同的数据库的语句有所不一样 增加和删除都基本一致. 进行修改表中字段的时候注意: 本文主要介绍 sqlserver/mysql/o ...

  9. mysql alter table if_MySQL中的alter table命令的基本使用方法及提速优化

    一.基本用法 1. 增加列 ?1alter table tbl_nameadd col_name type 例如,  给pet的表增加一列 weight, ?1mysql>alter table ...

最新文章

  1. Python 文件 close() 方法
  2. “���”引发的线上事故
  3. Atitit.android  jsbridge v1新特性
  4. 【自动驾驶】15.一文读懂图像中点的坐标变换(刚体变换,相似变换,仿射变换,投影变换)
  5. Python 删除列表中的重复数据
  6. 进销存中多计量单位解决方法
  7. 电脑上同时安装了tensorflow和tensorflow-gpu,如何默认使用tensorflow-gpu
  8. BAT Window批量重命名
  9. javaweb mysql 连接池 c3p0 配置_JavaWeb基础—数据库连接池DBCP、C3P0
  10. 服务端设置忽略更新_深入理解Kafka服务端之日志对象的读写数据流程
  11. 大话说github建立里程碑(SE)
  12. 系统学习NLP(九)--中文分词算法综述
  13. python 释放内存_python深入之python内存管理机制(重点)
  14. 企业可以自己开发一套CRM系统吗?
  15. IDEA必备插件大全
  16. 支付宝 android 崩溃,支付宝App崩溃网友集体炸锅 官方紧急回应
  17. html制作学生信息表静态网页,实验一静态网页制作报告.doc
  18. 策略模式(用策略模式实现我们淘宝,京东,美团等等简易满减活动)
  19. Visual Studio 好用的插件
  20. 【C++】1014 福尔摩斯的约会

热门文章

  1. solr7在tomcat上的部署
  2. MySQL中的事务及读写锁实现并发访问控制
  3. Python关键点常识
  4. 我的WCF之旅(10):如何在WCF进行Exception Handling
  5. 野哥点评了Facebook、Amazon、Google、微软和苹果
  6. CSRF 攻击的对象
  7. 子div撑不开父div的几种解决方法
  8. iOS开发UI篇—UIScrollView控件介绍
  9. ztree同级只显示一个节点
  10. C++与tolua++的完整调用流程,超级详解解决交互疑难