Каков предел типа поля BIGINT в SQL?

Каков предел типа поля BIGINT в SQL?

допустимо ли 100000235882380 или 100000466411115? (Это ID из фейсбука)


person ozsenegal    schedule 10.12.2010    source источник
comment
Я предполагаю, что для переносимости вы можете вместо этого использовать строку. В моем случае я закодировал значение дополнения до двух (BigInteger.toBytes), используя Base64, и искал его при доступе к базе данных.   -  person Archimedes Trajano    schedule 19.07.2013


Ответы (4)


Сверьтесь с руководством используемой СУБД. Во всех системах может быть не так.

MySQL:
https://dev.mysql.com/doc/refman/5.7/en/integer-types.html

PostgreSQL:
https://www.postgresql.org/docs/10/static/datatype-numeric.html

SQL Server (Transact-SQL):
https://docs.microsoft.com/en-us/sql/t-sql/data-types/int-bigint-smallint-and-tinyint-transact-sql

DB2:
http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.sqlref/db2z_biginteger.htm

person Dan Grossman    schedule 10.12.2010
comment
Существуют ли другие RDMS с типом BIGINT, кроме SQL Server? Возможно, похожий тип, но я думаю, будет справедливо заключить, что OP использует SQL Server. - person Andrew Hare; 10.12.2010
comment
MySQL, Postgres... пользователей СУБД с BIGINT кроме SQL Server больше, чем пользователей SQL Server. - person Dan Grossman; 10.12.2010
comment
На самом деле, если bigint определен в стандарте ISO SQL как 64-битный (как я подозреваю), вам не нужно будет составлять исчерпывающий список баз данных, а только те, которые слишком повреждены мозгом, чтобы соответствовать стандарту. - person Jeff; 22.01.2018
comment
@Jeff: К сожалению, стандарт SQL говорит только это о диапазонах целых типов: точность SMALLINT должна быть меньше или равна точности INTEGER, а точность BIGINT должна быть больше или равна точности INTEGER. (точность - это количество битов целочисленного типа) - person iwis; 11.10.2020


Это зависит от СУБД. Например, максимальные значения BIGINT равны 9223372036854775807 (для подписанных) или 18446744073709551615 (для неподписанных) в MySQL.

Полную информацию см. в разделе документации Числовые типы. Детали.

person John Parker    schedule 10.12.2010
comment
Обратите внимание, что это для MySQL, другие платформы баз данных могут иметь или не иметь такие же ограничения (увы, в OP не указано, какая база данных SQL имеется в виду). - person Piskvor left the building; 10.12.2010
comment
@Piskvor - Хороший звонок, слишком далеко с моей стороны. Я обновлю свой ответ. :-) - person John Parker; 10.12.2010

Не о чем беспокоиться. BIGINT может хранить гораздо большие значения, чем те, которые у вас есть.

Минимум до 9 223 372 036 854 775 807.

person rustyx    schedule 10.12.2010