2012-06-22 16 views
3
INSERT INTO `ree`.`media` 
(`CREATEDATE`, `FILETYPE`, `MIMETYPE`, `MLSNUMBER`, `MODIFYDATE`, `POSITION`, `URL`) VALUES 
('2011-12-27T15:00:16', 'PRIMARY PHOTO', 'image/jpeg', 5030011414, '2011-12-27T15:00:16', 1, 'http://image.realcomponline.com/photos.rps?PATH=PROPERTY/57FA/57FAA44C48854C/3QQGONGA03I7CN.jpg&g=100&sp=0&l=0&t=0&r=10000&b=10000&o=0&1cf=0&w=320&h=240'), 
('2011-12-27T15:00:18', 'PRIMARY PHOTO', 'image/jpeg', 5030011507, '2011-12-27T15:00:18', 1, 'http://image.realcomponline.com/photos.rps?PATH=PROPERTY/6FC7/6FC7B6F88D8F45/3SQGONGA01RXH1.jpg&g=100&sp=0&l=0&t=0&r=10000&b=10000&o=0&1cf=0&w=320&h=240') 

错误:键“UNEEK”重复项“2147483647-1”为什么我的MySQL唯一键失败?

好像我MLSNUMBER独特的键不区分两个插件之前,分析整个号码。

双方开始5030011 ...

这里是我建立我的关键是: 添加唯一uneekMLSNUMBERPOSITION

有没有建立该键的方式它接受整个10位数字而不是前7位数字?

在此先感谢!

回答

5

您已经用完了int的范围。 2147483647 = 2^31 - 1 您可能会将该字段中的int改为64位:

ALTER TABLE media MODIFY COLUMN MLSNUMBER BIGINT NOT NULL; 
(Modify unsigned and not null for your needs). 
+0

他没有'AUTO_INCREMENT'或他不使用它。他明确提供了这一栏的值。 –

+0

感谢您的帮助,Andrew! – Blenderer

4

看来你已经定义了MLSNUMBER列作为整型,和大的值越来越截断至最大32位带符号的价值,这是2147483647

我验证了这通过尝试将值5030011507添加到Int列,并最终存储值2147483647.它与您的错误消息中的编号相匹配。值被截断时,我也收到警告。

您可以尝试更改列类型BIGINT,这将允许值高达9223372036854775807

+0

谢谢你的帮助,阿美! – Blenderer