唯一索引的分区列必须是索引键错误的子集

2024-02-23

所以我的项目要求我使用分区将名为 Leases 的表分成两个(分区的一侧是早于 2003 年 1 月 15 日的租约,另一侧是比该日期更新的租约)

基本上我之前创建了一个名为“Leases”的表,我想为其创建一个分区(我需要创建一个全新的表来执行此操作),因此我将该表中的所有数据复制到一个名为“Leases2”的新表现在,当我尝试传输所有约束时,除了主键约束之外,它们在新表上都执行时没有错误。

PS:我是sql新手。

所以我像这样创建了我的分区:


CREATE TABLE Leases2
(
    ContractDate        datetime    NOT NULL,
    FirstPaymentDate    datetime    NOT NULL,
    MonthlyPayment      money       NOT NULL,
    NumPayments         tinyint     NOT NULL,
    VIN                 char(23)    NOT NULL,
    CustomerID          int         NOT NULL,
    LeaseTermID         int         NOT NULL
)
ON LeasesOldNewScheme (ContractDate)
GO

CREATE PARTITION FUNCTION LeasesOldNew (datetime)
AS RANGE RIGHT FOR VALUES('2003-01-15 00:00:00.000')
GO


CREATE PARTITION SCHEME LeasesOldNewScheme AS
PARTITION LeasesOldNew TO (OLeases, NLeases)
GO

ALTER TABLE Leases2
ADD PRIMARY KEY (LeaseTermID);

我收到这个错误

“列‘ContractDate’是索引‘PK__Leases2__30F848ED’的分区列。唯一索引的分区列必须是索引键的子集。” (合同日期是其中一栏)


看来解决方法只是在索引列中包含“ContractDate”。分区索引是与表分区一起创建的,并且需要在这些相同的分区内进行分区。这意味着索引需要以首先沿着分区列(ContractDate)排序的方式进行排序。

要添加你的 PK,它会是这样的:

ALTER TABLE Leases2
ADD PRIMARY KEY (ContractDate,LeaseTermID);

我在这里猜测,因为我对sql-server不太熟悉,我必须研究文档。

请注意,对于所有支持分区的数据库实现来说,情况也不尽相同。例如,Oracle 允许您独立于分区方案创建本地索引(在分区内)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

唯一索引的分区列必须是索引键错误的子集 的相关文章

  • POINT 列上的 MySQL INSERT/UPDATE

    我正在尝试用我国家的地理位置填充我的数据库 我的一张表有 4 个字段 ID PK 纬度 经度和地理点 EDIT SCDBs Punto Geografico SET lat 18 469692 SET lon 63 93212 SET g
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • 我怎样才能知道oracle 9i中哪些值是数字

    我有这个包含 varchar 的数据库 我想知道哪些记录保存数值 我试过REGEXP COUNT和其他 但我在 9i 上运行 我认为这是针对 10g gt 我怎样才能实现这个目标 I tried select to number my co
  • java ResultSet,使用MAX sql函数

    你好 这就是我想要的 我连接到数据库并检索 UniqueId 列的最大元素 并将其分配给名为 maxID 的整数变量 这是我的方法 int maxID 0 Statement s2 con createStatement s2 execut
  • 如何连接sql中具有相同值但在同一个表的不同列中的行?

    我正在尝试合并来自不同列的具有相同值的数据 并且仅停止显示没有连接值的记录 例如我有 ID TaxDecNo PrevTaxDec 1 5374 11135 2 9864 7394 3 11135 21784 4 7394 6872 5 2
  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • 在单个 select 语句中多次有条件地求和同一列?

    我有一个表 显示每个月在给定位置的各种类型的部署的员工部署情况 ID Location ID Date NumEmployees DeploymentType ID 例如 一些记录可能是 1 L1 12 2010 7 1 Permanent
  • 使用包含和不包含的 Linq 查询

    我正在尝试从数据库中获取记录 它应该 getrecords 其中名称包含 searchKey 并且名称不在 exceptTerms 数组中 并以逗号分隔 我怎样才能在 Linq 中做到这一点 Rows from u in DB Client
  • 同时使用 GUID 和自动递增整数

    我一直在研究使用 GUID 作为数据库中的主键 到目前为止 利似乎大于弊 然而 我发现 GUID 可能不是我想要的 在我的应用程序中 用户应该能够根据用户友好的 ID 来识别对象 因此 例如 如果他们想要获取特定产品而不输入全名 则可以使用
  • 插入 Hive 表 - 非分区表到具有多个分区的分区表 - 无法插入目标表,因为列号/类型

    当我尝试插入分区表时 出现以下错误 SemanticException 错误 10044 第 1 23 行无法插入目标表 因为列号 类型不同 表 insclause 0 有 6 列 这 3 列已分区 我们不需要任何必须从中转储 存储的过滤器
  • 串行类型的外键 - 确保始终手动填充

    我有两个表 国家和地区 CREATE TABLE Countries id SERIAL name VARCHAR 40 NOT NULL PRIMARY KEY id CREATE TABLE Regions id SERIAL coun
  • 删除 IF ELSE 语句中的临时表

    我在这里面临僵局 问题是我必须更改使用 3 个不同临时表的过程 为了便于对话 让我们将它们命名为 temptable1 temptable2 temptable3 我无法在这里复制 粘贴整个过程 但总体思路是这样的 原始过程 procedu
  • 如何在实体框架中完全锁定一行

    我正在处理的情况是我们正在处理金钱交易 例如 我有一个用户钱包表 其余额位于该行 UserId Wallet Id Balance 现在 在我们的网站和网络服务中 每次发生特定交易时 我们都需要 检查是否有足够的资金可用于执行该交易 从余额
  • SQL 中基于下一条记录和上一条记录的复杂排序

    这是一个后续问题根据 SQL 中的下一条记录和上一条记录进行排序 https stackoverflow com questions 30477803 sorting based on next and previous records i
  • SQL 2008全文索引填充延迟

    我的经理说 在基础表数据更改后 可能需要一段时间才能更新全文搜索索引 例如 如果我有一张桌子Products有一个柱子Description我更新了该描述 然后我可能需要一些时间才能搜索该新描述 真的吗 这需要多长时间 SQL 2008 对
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 意外的查询结果

    为什么我从 sql server 得到以下结果 SELECT 12 C1 CONVERT int C2 CASE WHEN THEN equal ELSE not equal END C3 Sql Server Fiddle 演示 http
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n

随机推荐

  • 使用 Gson 解析时跳过级别

    我有一些 json 格式 如下所示 root user name Name age 99 another obj f1 abc f2 1 result code 0 我创建了一些模型 如下所示 class User private Stri
  • 为什么 Redis 我收到 TypeError: Cannot read properties of undefined (reading 'get') 我的 Redis 已正确初始化?

    我收到此错误 显示 TypeError 无法读取未定义的属性 读取 get 当我点击 API 来测试我的 API 时 出现此错误 我尝试仔细检查我的主机名密码和端口 结果都是正确的使用 Windows 机器并使用 Redis Labs 进行
  • 用 perl 分割线[重复]

    这个问题在这里已经有答案了 可能的重复 用 perl 分割线 https stackoverflow com questions 7386215 split line with perl 我有一句话 regizor Betty Thomas
  • PL/SQL 中受 UPDATE 影响的行数

    我有一个 PL SQL 函数 在 Oracle 10g 上运行 我在其中更新一些行 有没有办法找出有多少行受到更新的影响 手动执行查询时 它会告诉我有多少行受到影响 我想在 PL SQL 中获取该数字 您使用sql rowcount多变的
  • 如何处理 Spark Map() 函数中的异常?

    我想忽略 map 函数中的异常 例如 rdd map toInt 其中 rdd 是RDD String 但如果遇到非数字字符串 则会失败 忽略任何异常并忽略该行的最简单方法是什么 我不想使用过滤器来处理异常 因为可能还有很多其他异常 您可以
  • 如何在 Elasticsearch 中创建嵌套对象并将其添加到嵌套字段中?

    https www elastic co guide en elasticsearch reference current nested html https www elastic co guide en elasticsearch re
  • todo 标签不适用于 eclipse 和 pydev

    我在 fedora 和 pydev 2 2 2 上使用 eclipse 3 7 0 我尝试使用待办事项标签 但它不起作用 窗口 gt 首选项上的待办事项标签看起来不错 我可以在该行旁边使用左键单击添加 请指教 带有 TODO 的注释仅在以下
  • 单击 FAB 上的 Alpha 背景

    I m using the library https github com futuresimple android floating action button https github com futuresimple android
  • C++ 标准中“好像”规则的声明或基础在哪里?

    经过一番谷歌搜索后 例如 site eel is as if rule 我找不到 C 标准中明确规定所谓 好像 规则的适当位置 我所能找到的是 在标准中调用它的那些地方 intro execution给出了参考 But intro exec
  • 如何使用 Flexbox 进行砖石布局

    我想通过 flexbox Child 元素创建砖石布局 Child 元素应按以下顺序出现 并且子元素具有不同的高度和相同的宽度 我正在使用延迟加载 1 2 3 4 5 6 从技术上讲 这是可能的flex flow column wrap 但
  • 为什么 OS X 在复制到 Samba 共享时不像 Windows 那样锁定文件?

    我有一个项目 它使用 net FileSystemWatcher 来观看 Samba 网络共享中的视频文件 当它看到一个文件时 会将其添加到编码队列中 当文件出队时 它们会被移动到本地目录 然后进程将文件编码为几种不同的格式并将它们吐出到输
  • 通过 SPARQL 处理 R XML 的编码问题

    我遇到了 R 的 SPARQL 包的编码问题 我正在运行以下代码 library SPARQL rights query lt PREFIX dc
  • 当用户开始输入时隐藏数据列表选项

    我创建了一个数据列表 显示用户关闭程序时保存的数据 我希望数据列表仅在用户单击下拉箭头 或输入框 时显示 并在用户开始键入时隐藏 我试过了 创建一个oninput事件希望当用户开始输入时数据列表将隐藏 使用隐藏数据列表datalist st
  • 多个登录表单

    我的 Web 应用程序使用 Spring security 进行保护 现在我正在尝试设置两个不同的登录页面 这是我的配置
  • 绘制大圆路径

    我正在尝试绘制一些基于路径 连接的地图 但无法弄清楚如何绘制 我看到基于一点的指标有很多可能性 伦敦的犯罪热点等 使用 googleVis ggmap 等 但我找不到太多基于两点的指标的示例 城市之间的移民 火车路线等 包中有一个示例geo
  • 找不到接受所提供参数的“+”重载

    所以我试图将我用 Objective C 制作的游戏转换为 Swift 我试图让它工作 但它总是给我一个错误 var actualX Double arc4random Double rangeX Double minX 我也尝试过 var
  • 如何在 Doxygen 注释中包含“<”?

    假设我正在使用 DOxygen Visual studio 兼容注释记录成员函数 如何使用小于 例如 如果我这样做
  • 如何在Azure函数的自定义HTTP路由中指定查询参数?

    我有一个 Azure Function 我想设置自定义 HTTP 端点 按照这个SO的答案question https stackoverflow com questions 52748519 how can my http trigger
  • Android Studio 中未显示菜单栏

    我在 macOS Sierra 上使用 Android Studio 应用程序时遇到问题 似乎该应用程序并未真正打开 因为通常 当应用程序打开时 其在扩展坞中的图标下有一个点 但在我的电脑上没有 真正的问题是 文件 构建 等菜单栏选项没有显
  • 唯一索引的分区列必须是索引键错误的子集

    所以我的项目要求我使用分区将名为 Leases 的表分成两个 分区的一侧是早于 2003 年 1 月 15 日的租约 另一侧是比该日期更新的租约 基本上我之前创建了一个名为 Leases 的表 我想为其创建一个分区 我需要创建一个全新的表来