以Postgresql为主,再聊聊资料库 利用自定义型态 create type 建立 typed table

先来看一张图
http://img2.58codes.com/2024/20050647lsTkSwWwMU.png

简单说明一下里面的指令:

先建立一个 table 名称鲑鱼寿司,里面有两个栏位,苹果跟草莓,型态是 int 及 text.建立 type 辣椒 , 里面的栏位是小螃蟹,根据 鲑鱼寿司table,所以小螃蟹是複合资料型态,里面就包含了苹果跟草莓.再来利用 type 辣椒 来建立 typed table 芒果.接着就是输入资料,这时候需要使用转型的技巧,PG可以使用 :: 运算符号,与CAST()等效.接着是取出资料,因为是複合资料型态,所以需要用()包住小螃蟹.

看到这里,也许会有疑问.这种 typed table 有何用处?
先来看
http://img2.58codes.com/2024/20050647Q6Bkt5rgIF.png
当我们要对辣椒增加属性时,因为有 typed table 的关係,是不能这样修改,要用 CASCADE.
有点类似关联限制.
接着我们使用辣椒再建立一个table 西瓜.
然后再增加辣椒的属性.
http://img2.58codes.com/2024/200506474iTziT15TH.png

后面再做查询,可以看到table的栏位是 小螃蟹 与 奇异果.
这样的关係限制,有利于我们在系统中,保持栏位的一致性.就不会改了芒果忘了西瓜.

在PG的information_schema.tables 里面也有 is_typed 属性.
可以很方便的查到,哪些table 是 typed table.

线上展示在以下连结:
https://dbfiddle.uk/?rdbms=postgres_14&fiddle=dbc11dbbebce4e65f02dd32ace903da9

编辑时预览,可以看到 辣椒 那些 emoji.但是发表时,却又变成?了,所以改成截图方式.


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章