首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server :创建唯一索引时的重复键

Server :创建唯一索引时的重复键
EN

Stack Overflow用户
提问于 2018-04-29 20:18:54
回答 1查看 1.3K关注 0票数 1

我有一张股票报价表,日期:

代码语言:javascript
复制
StockID QuoteID QuoteDay    QuoteClose
---------------------------------------
5         95    2018-01-03    1.080
5         96    2018-01-04    1.110
5         97    2018-01-05    1.000
5         98    2018-01-06    1.030
5         99    2018-01-07    1.010
5        100    2018-01-08    0.899
5        101    2018-01-09    0.815

我创建了一个聚集索引来操作数据,但是在索引中遇到了重复的键错误。

代码语言:javascript
复制
CREATE UNIQUE CLUSTERED INDEX MACD_IDX ON #TBL_MACD_LOOP (StockId, QuoteId)

StockIDQuoteID的不同组合将产生相同的输出:

例如,(StockID, QuoteID) of (5, 11)(51, 1)都生成511索引。

我的解决方案是在StockId和QuoteId之间添加"-“。

现在,(5, 11)生产5-11(51, 1)生产51-1

如何将字符串与值结合起来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-29 20:30:57

不,你绝对是弄错了

(StockId, QuoteId) of (5, 11)(51, 1)的组合是两个明显不同的值对。

它们是,而不是在创建索引条目时将组合成单个值(如您假设的511值)。它们是,两个不同的值,,因此可以在该表中共存-没有问题。

要证明这一点,只需运行以下INSERT语句:

代码语言:javascript
复制
INSERT INTO #TBL_MACD_LOOP(StockId, QuoteId, QuoteDay, QuoteClose)
VALUES (5, 11, '20180505', 42.76), (51, 1, '20180505', 128.07)

即使有了唯一的索引,这个INSERT也可以正常工作(当然,假设您的表中没有这两对值中的一个)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50090906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档