ALTER TABLE & ALTER TYPES

简介: 摘要: 主要的内容是alter, alter table, alter type, length, postgresql 9.2, rewrite, reindex,转换函数不需要重写表和索引

摘要: 主要的内容是alter, alter table, alter type, length, postgresql 9.2, rewrite, reindex

下面有三个补丁供大家使用, 它们是由 Robert Hass 提交的。

2月7日的补丁


添加一个 numeric 类型 typmode coercisiions 的转换函数
这将会使得 alter table操作 可以跳过表和索引重建时字段更改为不受约束的数字, 或者当这个比例不变时
精度不降低.

noah misch, 提供了语法上的修改和一个OID修改

补丁 二


添加了一个 varbit 类型的 typmod coercisions 转换函数
这将会使得 alter table 操作可以跳过表和索引重建时这个新类型 varbit 不受约束, 或者允许位减少

最后的补丁


添加一个 various temporal typmod coercisions 的转换函数
可以使得 alter table 在一些情况下跳过表和索引重建

接下来通过具体的例子, 我们来查看它的优点。

  1. numeric(x, y) 到 numeric(x+, y) -- 具体的例子是 从numeric(8,3) 到 numeric(10, 3)
  2. 任意 numeric 到 numeric 没有指定精度和没有指定比例/范围 如下面的语句

    alter table z alter column i type numeric;
  1. varbit(x) 到 varbit(x+) -- 具体例子从 varbit(8) 到 varbit(10)
  2. 任意的 varbit 字段 没有长度限制

alter table z alter column i type varbit;

  1. time(x) 到 time(x+) --- 具体例子 time(2) 到 time(3)
  2. 任意时间字段到时间字段, 没有精度限制

alter table z alter column i type time;

  1. timez(x) 到 timez(x+) -- 具体例子是 timez(2) 到 timez(3)
  2. 任意 timetz 到 timetz 字段, 精度不限制

alter table z alter column i type timetz;

  1. timestamp(x) 到 timestamp(x+) -- 具体的例子是 timestamp(2) 到 timestamp(3)
  2. 任意的 timestamp 到timestamp 没有精度要求

alter table z alter column i type timestamp;

  1. interval(x) 到interval(x+) -- 具体的例子就是 从 interval(2) 到 interval(3)
  2. 任意的interval 到interval 字段, 没有精度限制

alter table z alter column i type interval;

具体的内容参看下面的信息

从 "INTERVAL YEAR" 到

“INTERVAL YEAR”
"INTERVAL DAY"
"INTERVAL HOUR"
"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL YEAR TO MONTH"
"INTERVAL DAY TO HOUR"
"INTERVAL DAT TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL MONTH" 到

"INTERVAL YEAR"
"INTERVAL MONTH"
"INTERVAL DAY"
"INTERVAL HOUR"
"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL YEAR TO MONTH"
"INTERVAL DAY TO HOUR"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL DAY" 到

"INTERVAL DAY"
"INTERVAL HOUR"
"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO HOUR"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL MINUTE" 到

"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL SECOND" 到

"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL YEAR TO MONTH " 到

“INTERVAL YEAR”
"INTERVAL DAY"
"INTERVAL HOUR"
"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL YEAR TO MONTH"
"INTERVAL DAY TO HOUR"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL DAY TO HOUR" 到

“INTERVAL HOUR”
"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO HOUR"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL DAY TO MINUTE" 到

"INTYERVAL MINUTE "
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL DAY TO SECOND" 到

"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL HOUR TO MINUTE" 到

"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL    DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL HOUR TO SECOND" 到

"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

从 "INTERVAL MINUTE TO SECOND"

"INTERVAL MINUTE"
"INTERVAL SECOND"
"INTERVAL DAY TO MINUTE"
"INTERVAL DAY TO SECOND"
"INTERVAL HOUR TO MINUTE"
"INTERVAL HOUR TO SECOND"
"INTERVAL MINUTE TO SECOND"

这些数据类型的大部分是非常奇特的, 但是他们确实非常有用, 而且使用这种转换能力,不需要重写表和索引是一件非常好
的事情,在这里感谢诺亚和罗伯特

目录
相关文章
|
弹性计算 负载均衡 容灾
阿里云服务器地域和可用区之间是什么关系?地域和可用区的区别与选择参考
不管是选择阿里云的国内云服务器还是国外云服务器,都有多个地域及可用区选择,目前国内地域有北京、青岛、甚至等13个地域可选,国外地域有韩国、新加坡、悉尼等15个地域可选,每个地域又有多个可用区可选,那么阿里云服务器地域和可用区之间是什么关系?作为用户的我们又改如何选择呢?本文介绍阿里云地域和可用区的概念、选择指导、两者的关系以及阿里云支持的地域和可用区列表。
999 0
阿里云服务器地域和可用区之间是什么关系?地域和可用区的区别与选择参考
|
算法 数据安全/隐私保护
TSCAN + TMODEL处理点云数据生成DEM
TSCAN + TMODEL处理点云数据生成DEM
1155 0
TSCAN + TMODEL处理点云数据生成DEM
|
11月前
|
编解码 UED
Qt侧边栏的动态切换:隐藏与显示技术详解
在现代用户界面设计中,侧边栏(Sidebar)是一个常见的组件,它为用户提供了导航和工具面板的功能。在某些应用场景下,我们可能需要动态地隐藏或显示侧边栏,以优化界面布局或提供更灵活的用户体验。本文将分享如何在Qt框架下实现侧边栏的隐藏与呈现,包括技术细节和代码示例。
982 3
|
9月前
Dataphin免费试用指南
为您提供Dataphin快速上手操作指南,一起轻松构建数据
566 67
|
9月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
233 1
Jmeter如何对UDP协议进行测试?
|
12月前
|
JSON JavaScript 前端开发
vue如何更好的解决浏览器兼容问题
vue如何更好的解决浏览器兼容问题
313 1
|
12月前
|
人工智能 自然语言处理 程序员
通义灵码体验分享
如果你也是一名程序员,我强烈推荐你试试通义灵码。它不仅能够帮你提高开发效率,还能够给你带来全新的编程体验。让我们一起迎接AI编程助手带来的无限可能吧!
247 0
|
存储 安全 编译器
【C语言】memcpy,memmove,memcmp,memset函数详解
【C语言】memcpy,memmove,memcmp,memset函数详解
【C语言】memcpy,memmove,memcmp,memset函数详解
|
JavaScript 前端开发
报错:关于Vue项目下载swiper插件时没有dist文件夹的问题
报错:关于Vue项目下载swiper插件时没有dist文件夹的问题
278 0