前端時間要寫個游戲里的郵件系統,定義了一個如下的表結構:
CREATE TABLE `sysmail` (`mailid` int(20) NOT NULL AUTO_INCREMENT,`sendtime` int(11) NOT NULL DEFAULT '0',`mailtitle` varchar(512) COLLATE utf8_bin NOT NULL DEFAULT '',`mailcontext` varchar(2048) COLLATE utf8_bin NOT NULL DEFAULT '',`attachment` blob,`obj` blob,PRIMARY KEY (`mailid`)
) ENGINE=InnoDB AUTO_INCREMENT=2147483647 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
后來覺得mailid是自增的在合服的時候不好處理,我就把mailid的自增字段去掉,
用的是很傳統的
alter table sysmail modify column mailid int(20) not null;
但是發現,在沒有重啟mysql服務器的前提下,插入不同的mailid的記錄會提示1062的錯誤,后來又改成
alter table sysmail change mailid mailid bigint(20) not null;
就成功了,而不需要重啟mysql服務器就生效。
?看來我還是沒有搞懂modify和change的區別