首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有相似值的主键的mysql重复输入错误

问具有相似值的主键的mysql重复输入错误
EN

Stack Overflow用户
提问于 2021-02-10 20:53:17
回答 1查看 614关注 0票数 1

这就是我如何创建我的表,我有复合键列。

代码语言:javascript
复制
CREATE TABLE platformExchangePair(
pairName VARCHAR(15),
idExchangePlatform INT,
PRIMARY KEY (pairName,idExchangePlatform),
FOREIGN KEY (idExchangePlatform) REFERENCES exchangePlatform(idExchangePlatform)
);

现在,我试图插入这两个值,除了最后一个字符t‘之外,这些值是相同的:

value1 = testbtc:testusd

testbtc:testusdt = value2

代码语言:javascript
复制
INSERT INTO platformExchangePair (pairName,idExchangePlatform) 
VALUES ('testbtc:testusd',1),('testbtc:testusdt',1);

输出错误:

代码语言:javascript
复制
1 Duplicate entry 'testbtc:testusd-1' for key 'platformExchangePair.PRIMARY' SQL.sql 75 1 

这是没有意义的,他们没有重复,是不是在我的桌子上遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 21:06:19

我怀疑您使用的MySql版本是5.5.x,在这种情况下,当您试图为VARCHAR列插入一个大于其定义长度的值时,在您的情况下,该值会被截断为最大长度。

因此,因为'testbtc:testusdt'的长度是16,所以它被截断为'testbtc:testusd' (前15个字符),结果是dupicate。

请参阅简化的演示。

您能做的最好是增加列的大小:

代码语言:javascript
复制
ALTER TABLE platformExchangePair MODIFY COLUMN pairName VARCHAR(20);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66144836

复制
相关文章

相似问题

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