PostgreSQL ALTER TABLE中改变数据类型时USING的用法转
在修改表字段类型的时候使用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的用法转相关推荐
- url oracle default schema,oracle @Table中使用schema时insert报错
第一部分 测试情况如下: maven修改 com.alibaba druid 1.1.10 实体类 @Table(name = "dpcenter.xeuser") public ...
- 有一动态生成的TABLE,当点击该TABLE中的按钮时,如何得到该按钮所在行的某一列的值啊?...
前几天遇到此问题: 终于得到解决. protected System.Web.UI.HtmlControls.HtmlTable t_copy; private void ...
- MySQL中定义fk语句_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (4)
外键和其他约束 InnoDB和NDB存储引擎支持 FOREIGN KEY 和 REFERENCES 子句,这些存储引擎实现了ADD [CONSTRAINT [symbol]] FOREIGN KEY ...
- mysql更改数据语句6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句(1)
ALTER TABLE 语句 ALTER TABLE更改表的结构.例如,可以添加或删除列.创建或销毁索引.更改现有列的类型.重命名列或表本身.还可以更改表特性,例如用于表或表注释的存储引擎. ●要使用 ...
- mysql alter table_mysql ALTER TABLE 的用法
在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变.常见的改变如下: 加一个栏位 删去一个栏位 改变栏位名称 改变栏位的资料种类 以上列出的改变并不是所有可能的改变.ALTER TA ...
- mysql alter table 速度慢_MySQL中ALTER TABLE时的性能问题
当对于一个大表进行ALTER TABLE的时候,性能问题就产生了.MySQL大部分改动的步骤如下:根据新的表结构创建一个空表,从旧表中把数据取出来插入到新表中,在删除旧表.这是个非常漫长的过程.许多人 ...
- postgresql表中间加列_PostgreSQL ALTER TABLE命令
PostgreSQL的ALTER TABLE命令用来添加,删除,或修改现有表中的列. www.yiibai.com 还可以使用ALTER TABLE命令添加和删除现有表上的各种制约因素. yiibai ...
- alter table add column多个字段_SQL对表中字段的操作 alter
ALTER TABLE 语句用于在现有表中添加.删除或修改列. 注意不同的数据库的语句有所不一样 增加和删除都基本一致. 进行修改表中字段的时候注意: 本文主要介绍 sqlserver/mysql/o ...
- mysql alter table if_MySQL中的alter table命令的基本使用方法及提速优化
一.基本用法 1. 增加列 ?1alter table tbl_nameadd col_name type 例如, 给pet的表增加一列 weight, ?1mysql>alter table ...
最新文章
- Python 文件 close() 方法
- “���”引发的线上事故
- Atitit.android jsbridge v1新特性
- 【自动驾驶】15.一文读懂图像中点的坐标变换(刚体变换,相似变换,仿射变换,投影变换)
- Python 删除列表中的重复数据
- 进销存中多计量单位解决方法
- 电脑上同时安装了tensorflow和tensorflow-gpu,如何默认使用tensorflow-gpu
- BAT Window批量重命名
- javaweb mysql 连接池 c3p0 配置_JavaWeb基础—数据库连接池DBCP、C3P0
- 服务端设置忽略更新_深入理解Kafka服务端之日志对象的读写数据流程
- 大话说github建立里程碑(SE)
- 系统学习NLP(九)--中文分词算法综述
- python 释放内存_python深入之python内存管理机制(重点)
- 企业可以自己开发一套CRM系统吗?
- IDEA必备插件大全
- 支付宝 android 崩溃,支付宝App崩溃网友集体炸锅 官方紧急回应
- html制作学生信息表静态网页,实验一静态网页制作报告.doc
- 策略模式(用策略模式实现我们淘宝,京东,美团等等简易满减活动)
- Visual Studio 好用的插件
- 【C++】1014 福尔摩斯的约会