mysql插入數字都變成2147483647的解決方法


(2011-10-18 16:57:43)

在用Excel導入數據的時候,碰到11位的數字都變成2147483647,原因是int類型的數據,最大隻能到2147483647,所以11位的都變成了2147483647,

解決辦法:

把字段類型由int改爲bigint,就可以了.

下面是mysql的數據類型詳解

1.整型(xxxint)

MySQL數據類型 含義
tinyint(m) 1個字節表示(-128~127)
smallint(m) 2個字節表示(-32768~32767)
mediumint(m) 3個字節表示(-8388608~8388607)
int(m) 4個字節表示(-2147483648~2147483647)
bigint(m) 8個字節表示(+-9.22*10的18次方)


2.浮點型(float和double)
MySQL數據類型 含義
float(m,d) 單精度浮點型,8位精度(4字節),m是十進制數字的總個數,d是小數點後面的數字個數
double(m,d) 雙精度浮點型,16位精度(8字節)
參數m隻影響顯示效果,不影響精度,d卻不同,會影響到精度。比如設一個字段定義

3.定點數(decimal)
decimal(m,d)定點類型浮點型在數據庫中存放的是近似值,而定點類型在數據庫中存放的是精確值。參數m是定點類型數字的最大個數(精度),範圍爲0~65,d小數點右側數字的個數,範圍爲0~30,但不得超過m。對定點數的計算能精確到65位數字。

4.字符串(char,varchar,xxxtext)
MySQL數據類型 含義
char(n) 固定長度的字符串,最多255個字符
varchar(n) 固定長度的字符串,最多65535個字符
tinytext 可變長度字符串,最多255個字符
text 可變長度字符串,最多65535個字符
mediumtext 可變長度字符串,最多2的24次方-1個字符
longtext 可變長度字符串,最多2的32次方-1個字符


5.二進制數據(xxxBlob)
XXXBLOB和xxxtext是對應的,不過存儲方式不同,xxxTEXT是以文本方式存儲的,如果存儲英文的話區分大小寫,而xxxBlob是以二進制方式存儲的,不區分大小寫。xxxBlob存儲的數據只能整體讀出。xxxTEXT可以指定字符集,xxxblob不用指定字符集。

6.日期時間類型(date,time,datetime,timestamp)
MySQL數據類型 含義
date 日期'2008-12-2'
time 時間'12:25:36'
datetime 日期時間'2008-12-2 22:06:44'  
timestamp 不固定

timestamp比較特殊,如果定義一個字段的類型爲timestamp,這個字段的時間會在其他字段修改的時候自動刷新。所以這個數據類型的字段可以存放這條記錄最後被修改的時間,而不是真正來的存放時間。

7.數據類型的屬性
MySQL關鍵字 含義
NULL 數據列可包含NULL值
NOT NULL 數據列不允許包含NULL值  
DEFAULT xxx 默認值,如果插入記錄的時候沒有指定值,將取這個默認值
PRIMARY KEY 主鍵
AUTO_INCREMENT 遞增,如果插入記錄的時候沒有指定值,則在上一條記錄的值上加1,僅適用於整數類型
UNSIGNED 無符號
CHARACTER SET name 指定一個字符集
發佈了120 篇原創文章 · 獲贊 7 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章