Проблемы с MySQL DataTypes - PullRequest
       14

Проблемы с MySQL DataTypes

0 голосов
/ 11 февраля 2012

У меня проблема с несколькими таблицами, которые я пытаюсь ввести в базу данных Xampp.Я продолжаю получать ошибки «вне границ столбца» (я интерпретирую это как означающее, что я объявил DataType слишком большого размера).Я использую страницу w3schools для соответствующих размеров (http://www.w3schools.com/sql/sql_datatypes.asp). По данным сайта:

TINYINT может содержать числа в диапазоне от 0 до 225, если объявлено как беззнаковое

BIGINT может содержать числа в диапазоне от 0 до 18446744073709551615, если объявлено как беззнаковое

DOUBLE не имеет диапазона в списке

Я ищу пример (я просмотрел множество веб-сайтов и книгу по MySQL и не нашел ни одного), чтобы объявить их в их самой большой форме или дать пояснения относительно того, как их декларировать и тому подобное.Типы данных работают. В настоящее время я понимаю, что:

TINYINT (размер) , где размер может быть до 127, если подписано, и 225, как без знака EX:

tinyint_var TINYINT(127)

или

tinyint_unsigned_var TINYINT(225) UNSIGNED

BIGINT (размер) , где размер может достигать 9223372036854775807, если подписано, или 18446744073709551615, как без знака

biginT_var BIGINT(9223372036854775807)

или

bigint_unsigned_var BIGINT(18446744073709551615)

DOUBLE (размер, десятичные знаки) не уверенкакие оценки даны в этом разъяснении.

Я получаю сообщения об ошибках с BIGINT:

bigint_var BIGINT(1000000000)

и с DOUBLE:

double_var DOUBLE(1000, 2)

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Вы, похоже, неправильно поняли нотацию SQL для объявлений. Это:

tinyint_var TINYINT(127)

пытается объявить TINYINT с шириной отображения 127 цифр (см. http://dev.mysql.com/doc/refman/5.6/en/numeric-type-attributes.html). Поскольку, как вы уже прочитали, TINYINT содержит только значения, до большинство , 255, его значения не могут быть ближе 127 цифр, поэтому ширина экрана в 127 цифр недопустима.

(И, аналогично для других ваших примеров.)

0 голосов
/ 11 февраля 2012

TINYINT является 1-байтовым значением.Его диапазон составляет 0-255, поэтому максимальная ширина экрана равна 3 и т. Д.

...