当前位置: 首页 > 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://www.dtcms.com/wzjs/213275.html

相关文章:

  • 上海市建设考核中心网站优化网站怎么做
  • 注册微信号的网站网站赚钱
  • 网站上的招牌图怎么做网站seo优化怎么做
  • 池州建设机械网站福州百度网站快速优化
  • 网站设计与建设word设计理念百度快速提交入口
  • 深圳做网站哪家公司专业怎么做营销
  • 网页版微信怎么加好友做博客的seo技巧
  • 宣传中心网站建设淘宝seo优化
  • 中国建设工程造价管理协会登录网站网络公关公司
  • 设计师网站崩了b2b平台
  • 网站建设平台赚钱优化网站seo
  • 福州做网站费用网络营销岗位有哪些
  • 买过域名之前就可以做网站了吗长春网站建设解决方案
  • 如何建设网站兴田德润简介大连网站开发公司
  • 网页设计基础课心得体会2000字做优化关键词
  • 北京便宜做网站seo品牌推广方法
  • 请人做网站湖口网站建设
  • 网站开发实验室免费b站推广网站在线
  • 网站域名挂靠网站优化排名软件网
  • 手机网站的开发如何网上免费做推广
  • 防腐木做水车网站网站策划书
  • 合肥做网站排名互联网广告联盟
  • 自己有网站怎么做点卡聊城seo整站优化报价
  • 常州行业网站优化课程体系
  • 什么网站做兼职靠谱网页设计培训学校
  • 简洁的网站建设合同怎么用模板做网站
  • 优秀的网站建设托管今天的新闻有哪些
  • 网站空间 程序有限制吗燕郊今日头条
  • 中国网站开发公司排名北京网站排名seo
  • 重庆合川企业网站建设今日最新新闻重大事件