我以前用的MYSQL是mysql-4.0.18-win,以前所有的数据库文件都是在4.0上建的,编码是utf-8。
4.0的建表文件。
<?php
----------------
CREATE TABLE fuser(
id varchar(30) NOT NULL,
name varchar(20) NOT NULL,
sex tinyint,
password varchar(200),
phone varchar(30),
email varchar(50),
jtime datetime,
active tinyint(4) Default '1',
PRIMARY KEY (id));
------------------
?>
现在我的MYSQL升级到了mysql-5.0.18-win32,我把4.0的data目录下的数据表copy到5.0的data目录下,结果发现:
我用phpmyadmin管理器查看:
<?php
字段 类型 整理 属性 Null 默认 额外 操作
----------------------------------------------------------------------------
id varchar(10) utf8_general_ci 否
name varchar(6) utf8_general_ci 否
sex tinyint(4) 是 NULL
password varchar(66) utf8_general_ci 是 NULL
Phone varchar(10) utf8_general_ci 是 NULL
email varchar(16) utf8_general_ci 是 NULL
jtime datetime 是 NULL
active tinyint(4)
------------------------------------------------------------------------------
?>
问题就在于,5.0为什么会自动把类型改掉,比如原name是varchar(20),却被改成了varchar(6),并且改不了字段名称及类型。
提示:
<?php
MySQL 返回:
#1406 - Data too long for column 'Phone' at row 5
?>
还有,我把数据清空后,就能改字段名称及类型,没什么问题。令人头痛的是,我有好多数据,不能全清空吧。
大家帮我看看,谢谢啦~~