2017-12-08 13 views
-1

私のコードは一回のテストで正常に動作します。 idは1で始まり、1ずつ増加します。しかし、私がdjangoで実行全体をテストすると、私はこのエラーを受け取りました。22003 8115オーバーフローでエラーが発生しましたbigint id

たとえば、id601193234094856941が挿入されました。全体的には、私は10000個を超えるインサートを持っていません。この問題は、開発環境で発生します。

私たちは回避策がありますが、それがどのように機能し、解決策を見つけるかを理解したいと考えています。

( '22003'、 '[22003] [Microsoft]の[ODBC SQL Server用のドライバ13] [SQL Serverの]データ型intに式を変換算術オーバーフローエラー。(8115)(SQLExecDirectW)')」、

すべての変数はbigintです。idは上記正しくデータベースに挿入されているが、どうやらidは、後にインサートをbigintの最大上記の値に達した。

+0

[int型、bigint、smallint、およびtinyint(のTransact-SQL)](https://docs.microsoft.com/en-us/sql/t-sql/data-types/を見てくださいint-bigint-smallint-and-tinyint-transact-sql)を使用します。 intの最大値は '2,147,483,647'です。それはあなたの価値よりもはるかに少ないです。本当にIDが四角形に入る場合は、 'BIGINT'を使う必要があります。また、 '-9,223,372,036,854,775,808'(' BIGINT'が保存できる最低値)で始めることを検討することをお勧めします。これは、使用する18倍以上のIDを提供します。 – Larnu

答えて

0

ご提供いただいた情報に基づいて、これは予想されるものと思われます。参照ID 601193234094856941がINT型の値。次のコードでは、式をデータ型intに変換する算術オーバーフローエラーが発生します。あなたの問題に対処するための追加情報がありますか?

DECLARE @big  BIGINT = 601193234094856941 
     , @regular INT; 

SET @regular = @big; 
関連する問題