質問のコメントからPHPを使用していると思います。(現在、「php」関連としてタグ付けされていません)。ここに 2 セント追加します
signed int 値 2147483647 を超えた自動インクリメント インデックスで LAST_INSERT_ID を使用しようとしています。この列は unsigned int です。ただし、LAST_INSERT_ID() は無効な負の値を返しています。これを調査したところ、これがこの関数の性質であることを示すいくつかのコメントが見つかりました。しかし、公式に文書化されていることがわかりません。数年前にさかのぼるいくつかのバグ レポートがまだ未解決です。
mySQLのLAST_INSERT_ID
関数は、列 (現在の接続)の最新のINSERTからIDを返すため、列があなたが言ったようなものである場合、 2147483647より大きい値を返す可能性があります。これは正しい動作です。AUTO_INCREMENT
INTEGER UNSIGNED
したがって、これが実際に既知のバグであるかどうか、および/またはこれについて何かできることがあるかどうかを知る必要があります。mySQL を新しいバージョンにアップグレードする必要がありますか?
mySQL データ型は、PHPで使用するために選択した表現とはほとんど関係がないため、問題はmySQLサーバーにはありません。PHPインストールが非常に大きな数値を処理できない場合は、それをstring
(Shadow Radiance によると) として扱うことができます。