在mysql中建表时为什么char(6)会变成varchar(6)?怎么改? char(1)到 char(3)都可以,到 char(4)就变成 varchar(4)了意思是说在这里面 定长字符串char最多只能有3位? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在同一个表中不能混用CHAR 和VA R C H A R。MySQL 根据情况甚至会将列从一种类型转换为另一种类型。这样做的原因如下:■ 行定长的表比行可变长的表容易处理(其理由请参阅2 . 3节“选择列的类型”)。■ 表行只在表中所有行为定长类型时是定长的。即使表中只有一列是可变长的,该表的行也是可变长的。■ 因为在行可变长时定长行的性能优点完全失去。所以为了节省存储空间,在这种情况下最好也将定长列转换为可变长列。这表示,如果表中有VARCHAR 列,那么表中不可能同时有CHAR 列;MySQL 会自动地将它们转换为VARCHAR 列。例如创建如下一个表:CREATE TABLE my_table( c1 CHAR(10), c2 VARCHAR(10))如果使用DESCRIBE my_table 查询,则其输出如下:Feild Type Null Key Default Extrac1 varchar(10) yes null c2 varchar(10) yes null 请注意,VARCHAR 列的出现使MySQL 将c1 也转换成了VARCHAR 类型。如果试图用A LTER TABLE 将c1 转换为C H A R,将不起作用。将VARCHAR 列转换为CHAR 的惟一办法是同时转换表中所有VARCHAR 列:ALTER TABLE my_table MODIFY c1 CHAR(10),MODIFY c2 CHAR(10) 调用数据失效 验证码问题 不懂 请帮忙 寻找一些原创的论坛社区,借鉴一下 计算时间总数 的问题。 SQL的安装及与PHP的链接 php 下拉菜单联动问题 考试页面限制 ob_gzhandler, 怎么回事,高分提问 请问:那里有提供MYSQL的免费空间呀 为什么我所有的FORM都不能用了? 把程序从WIN2K上传到LINUX上所产生了问题急求! 急问一个变量传递的问题!
■ 行定长的表比行可变长的表容易处理(其理由请参阅2 . 3节“选择列的类型”)。
■ 表行只在表中所有行为定长类型时是定长的。即使表中只有一列是可变长的,该表的
行也是可变长的。
■ 因为在行可变长时定长行的性能优点完全失去。所以为了节省存储空间,在这种情况
下最好也将定长列转换为可变长列。
这表示,如果表中有VARCHAR 列,那么表中不可能同时有CHAR 列;MySQL 会自动
地将它们转换为VARCHAR 列。例如创建如下一个表:CREATE TABLE my_table
(
c1 CHAR(10),
c2 VARCHAR(10)
)如果使用DESCRIBE my_table 查询,则其输出如下:Feild Type Null Key Default Extra
c1 varchar(10) yes null
c2 varchar(10) yes null 请注意,VARCHAR 列的出现使MySQL 将c1 也转换成了VARCHAR 类型。如果试图用
A LTER TABLE 将c1 转换为C H A R,将不起作用。将VARCHAR 列转换为CHAR 的惟一办
法是同时转换表中所有VARCHAR 列:ALTER TABLE my_table MODIFY c1 CHAR(10),MODIFY c2 CHAR(10)