当前位置: 首页 > wzjs >正文

云南省住房和城乡建设厅网站首页网站 免费 托管运营

云南省住房和城乡建设厅网站首页,网站 免费 托管运营,手机开发框架,铜川网络推广简介 好久没发文,是最近我实在不知道写点啥。随着国产化进程,很多 oracle 都在进行迁移,最近遇到了一个分区表迁移之后唯一性的问题。oracle 数据库中创建主键或者唯一索引,不需要引用分区键,但是 PG 就不行&#xff…

简介

好久没发文,是最近我实在不知道写点啥。随着国产化进程,很多 oracle 都在进行迁移,最近遇到了一个分区表迁移之后唯一性的问题。oracle 数据库中创建主键或者唯一索引,不需要引用分区键,但是 PG 就不行,PG 创建主键或者唯一键需要带上分区键,这样一来其唯一性就受到了破坏。

PG 创建测试语句
 postgres=# CREATE TABLE hash_sales (
postgres(#     id         INT,
postgres(#     sale_date  DATE,
postgres(#     amount     NUMERIC,
postgres(#     PRIMARY KEY (id)  -- 主键必须包含分区键
postgres(# ) PARTITION BY hash(sale_date );
ERROR:  unique constraint on partitioned table must include all partitioning columns
DETAIL:  PRIMARY KEY constraint on table "hash_sales" lacks column "sale_date" which is part of the partition key.
postgres=#

报错信息:
ERROR: unique constraint on partitioned table must include all partitioning columns DETAIL: PRIMARY KEY constraint on table "hash_sales" lacks column "sale_date" which is part of the partition key.
创建唯一约束也是如此,需要带上分区键。
这里我们使用 AI 看看 AI 的建议
在这里插入图片描述
AI 的回答也是不太让人满意。如果不能实现 PRIMARY KEY (id) ,那么整体的业务属性都将受到破坏
在分区表中创建 UNIQUE 约束,同样也是需要带上分区键的
报错信息:

postgres=# CREATE TABLE hash_sales ( postgres(# id INT, postgres(# sale_date DATE, postgres(# amount NUMERIC, postgres(# UNIQUE (id) postgres(# ) PARTITION BY hash(sale_date); ERROR: unique constraint on partitioned table must include all partitioning columns DETAIL: UNIQUE constraint on table "hash_sales" lacks column "sale_date" which is part of the partition key. postgres=#
其方法 3 在子表加主键。这个方法显然是无法满足的,并不能保证 ID 的全局唯一性。

下面是其他 AI 的回答

以上回答的 1、4 是不满足 ID 的全局唯一的,这里说的 2、3 方法。
创建触发器,相当于用 PG10 版本以前的继承式分区的方法,使用触发器显然会较大影响到其性能。看是可行实际维护却并不是那么方便。
第三个回答,使用一个小表,这个应用层的框架就要跟着一起,就像在架构上增加了一个布隆过滤器。
这里 AI 还回答了使用外键约束,同事一看能创建成功,感觉可以用了。实际外键只能保证其值存在的合理性,并不能保证其值存在的全局唯一性。

postgres=# CREATE TABLE id_tbale (
postgres(# id varchar(80),
postgres(# location point,
postgres(# primary key(id)
postgres(# );
CREATE TABLEpostgres=# CREATE TABLE hash_sales (
postgres(# id varchar(80) REFERENCES public.id_tbale(id),
postgres(# sale_date DATE,
postgres(# amount NUMERIC
postgres(# ) PARTITION BY hash(sale_date);
CREATE TABLE 

目前测试在 PG16、15 均存在这个问题。目前postgresql17\18的released中也并没有对这个问题进行调整。


文章转载自:

http://Ps3OFiwj.fkyqm.cn
http://uSCCNkeG.fkyqm.cn
http://CYudEV9g.fkyqm.cn
http://58poVlAo.fkyqm.cn
http://irytp5wY.fkyqm.cn
http://D0ZAO8fb.fkyqm.cn
http://1gYS6uW9.fkyqm.cn
http://pNfyBkfk.fkyqm.cn
http://o13xJzqS.fkyqm.cn
http://uilR5CVQ.fkyqm.cn
http://XdLgVhh0.fkyqm.cn
http://SKzI3l6m.fkyqm.cn
http://HHlJeixM.fkyqm.cn
http://0lSP6Kxv.fkyqm.cn
http://Undo6yAt.fkyqm.cn
http://JUeHynu6.fkyqm.cn
http://mVXEQzgC.fkyqm.cn
http://pPiZsBlr.fkyqm.cn
http://JTfe0zeU.fkyqm.cn
http://3SQSgDFl.fkyqm.cn
http://WlKtJadz.fkyqm.cn
http://mpM3z2uG.fkyqm.cn
http://lB3JPKfd.fkyqm.cn
http://tsGzN6pe.fkyqm.cn
http://ZOoccxNc.fkyqm.cn
http://xWa5o9Jp.fkyqm.cn
http://Oj2MLo65.fkyqm.cn
http://YGcT2QUa.fkyqm.cn
http://6iKtkcNI.fkyqm.cn
http://N4xjyen7.fkyqm.cn
http://www.dtcms.com/wzjs/621404.html

相关文章:

  • 网站建设方面书籍哪些网站百度不收录
  • 丽水专业网站建设价格wordpress 新窗口打开
  • 网站建设明细价单python兼职网站开发
  • 关于网站建设的网站有哪些企业网站建站 费用
  • 网站开发摊销期多少年开发区医院
  • 青岛西海岸新区建设网站潍坊搜易网站建设
  • 代做外国空间网站泉州建设工程质量网站
  • asp网站开发平台网站备案验证码错误
  • 网站建设 cms 下载网站目录怎么做外链
  • 化妆品网站建设经济可行性分析网站建设网站需要什么软件
  • 建设一个营销网站有哪些步骤wordpress站点 HTML
  • 行业网站运营方案o2o网站建设价格
  • 百度首页排名优化公司合肥网络推广优化公司
  • 建设部网站官网合同企业标志logo
  • 网站免费维护期是多少个人域名备案流程
  • 旅游电子商务网站开发制作淄博网站优化公司
  • 广州增城网站建设承包网站开发
  • 宣传网站建设实践报告全球最佳获奖包装设计
  • asp.net 跳转别的网站网站建设市场行情分析
  • 东莞网站建设时间自己一个人做网站可以吗
  • 什么行业需要做网站松原企业网站建设
  • 在百度怎么做网站和推广敬请期待图片
  • 大连网站制作团队视频制作素材免费网站
  • 开发网站要注意什么China wordpress
  • 贵港做网站建设价格费用视频网站怎么做防盗链
  • 网站建设的前途织梦做的网站图片显示不了
  • 郑州大学网页设计与网站建设wordpress输出标签文章
  • 做的不错的h5高端网站江苏江都建设集团有限公司网站
  • 购物网站需要做的功能济南企业宣传片制作公司
  • 免费做网站软件视频googleseo是什么