2

mysql db(app_id、dated)に2列のキーを作成しましたが、次のクエリを実行すると問題が発生します

INSERT INTO `facebook_application_shares` (`user_id`, `app_id`, `dated`, `stats`) VALUES ('80', '269456199802533', '2012-04-24', '0')

次のエラーが発生します-app_idは269456199802533であり、2147483647ではありませんが

Duplicate entry '2147483647-2012-04-24' for key 1

次に、実際のdbテーブルを確認すると、値は実際には「2147483647」です。

私はこれに非常に混乱しています

ここに画像の説明を入力してください

4

1 に答える 1

4

2147483647、または、は、列に格納できる0x7FFFFFFF最大数です(あなたはそう思われます)。大きい値は切り捨てられます。MySQLINT SIGNEDapp_id

あなたを作りapp_idなさいBIGINT UNSIGNED

INT(100)それはまだ4-bit整数であり、アプリケーションに数字を超えて表示しないようにするためのオプションのヒントがあることに注意してください。100

このオプションの表示幅は、アプリケーションで、列に指定された幅よりも小さい幅の整数値をスペースで左パディングして表示するために使用できます。(つまり、この幅は、結果セットとともに返されるメタデータに存在します。使用されるかどうかは、アプリケーションによって異なります。)

を実際に保存できるわけではありませんgoogol - 1

于 2012-04-27T13:53:24.757 に答える