2014-09-23 141 views
0

我下表在我的MySQL數據庫:MySQL int列映射到Int64。我如何使它映射到Int32(即。int)?

CREATE TABLE `users` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `username` varchar(15) NOT NULL, 
    `password` varchar(255) NOT NULL, 
    `full_name` varchar(30) NOT NULL, 
    `email` varchar(200) NOT NULL, 
    `ip_address` varchar(15) NOT NULL, 
    `joined_unix` int(20) unsigned NOT NULL, 
    `avatar` varchar(255) DEFAULT NULL, 
    `bio` text, 
    `email_confirmed` int(1) NOT NULL DEFAULT '0', 
    `email_confirmation_security_hash` varchar(64) DEFAULT NULL, 
    `last_notification_time` int(10) unsigned NOT NULL DEFAULT '0', 
    `last_login_unix` int(20) unsigned NOT NULL DEFAULT '0', 
    `admin` int(1) unsigned NOT NULL DEFAULT '0', 
    `SecurityStamp` longtext, 
    `PhoneNumber` longtext, 
    `PhoneNumberConfirmed` tinyint(1) NOT NULL, 
    `TwoFactorEnabled` tinyint(1) NOT NULL, 
    `LockoutEndDateUtc` datetime DEFAULT NULL, 
    `LockoutEnabled` tinyint(1) NOT NULL, 
    `AccessFailedCount` int(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `username` (`username`), 
    UNIQUE KEY `email` (`email`), 
    KEY `Joined unix for stats page` (`joined_unix`) 
) ENGINE=InnoDB AUTO_INCREMENT=3035 DEFAULT CHARSET=utf8; 

我發現我的id列映射到Int64我的EDMX文件中,如果我改變它,查詢扔即使EDMX成功驗證異常。

如何才能將它映射到intInt32)而不是Int64?

+0

INT(10)的選擇似乎是故意的,根據您的其他INT變量。如果你需要這個數量級,恐怕你會陷入Int64/long – ne1410s 2014-09-23 20:01:33

+0

這是我覺得很奇怪的地方。我已經將它更改爲'Int(8)'作爲測試(也在所有相關表中)並且重新生成一個新的EDMX也將該列映射爲長'Int64'?還有什麼想法? – Luke 2014-09-23 20:08:44

+0

啊不,沒有!我刪除了連接字符串並重新創建了它,然後它很高興! – Luke 2014-09-23 20:15:46

回答

1

任何整型數據類型之後的數字(例如10)具有什麼也沒有與列可以包含在MySQL中的數據有關。這個數字被稱爲「顯示寬度」。

顯示寬度不限制可存儲在列中的值的範圍。

http://dev.mysql.com/doc/refman/5.6/en/numeric-type-attributes.html

這是從一個應用程序可以作爲一個應該被期待最廣泛的價值的「暗示」,僅此而已使用固定字符寬度終端的天遺留功能。如果你使用的是實際上使用這些信息來做其他事情,那麼這就是破壞行爲。

無論列定義中的顯示寬度如何,INT UNSIGNED都可以保存任何32位無符號整數 - 介於0和2^32-1之間的值。

如果你有一個系統不處理32位無符號整數,但你真的很想使用這種32位數據類型,你應該聲明該列爲INT,這是一個帶符號的32位整數,在零的任一側伴隨較小範圍,而不是INT UNSIGNED

http://dev.mysql.com/doc/refman/5.6/en/integer-types.html

相關問題