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」が重複しています

私の MLSNUMBER の UNIQUE キーは、2 つの挿入を区別する前に数値全体を解析していないようです。

どちらも 5030011 で始まります...

キーを作成する方法は次のとおりです。 ADD UNIQUE uneek( MLSNUMBER, POSITION)

最初の 7 桁の代わりに 10 桁全体を受け入れるように、このキーを作成する方法はありますか?

前もって感謝します!

4

2 に答える 2

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).
于 2012-06-22T21:37:12.763 に答える
4

MLSNUMBER 列を整数型として定義したようで、大きな値が最大の 32 ビット符号付き値 (2147483647) に切り捨てられています。

値 5030011507 を Int 列に追加しようとしてこれを確認したところ、値 2147483647 が格納されました。これは、エラー メッセージの数値と一致します。値が切り捨てられたときに警告も受け取りました。

列タイプを BIGINT に変更してみてください。これにより、最大 9223372036854775807 の値が許可されます。

于 2012-06-22T23:00:57.820 に答える