2011-10-28 78 views
1

这是我创建数据库表列时遇到的问题。对于每一种都有一个数据类型,它有它的长度。对于如说,其中一个表是一个文件路径,我认为这个文件的路径在最大长度应不小于100长,很明显,我将其指定为指定数据类型的长度

filepath Varchar(100) 

然而,这仍需要同样数量的内存空间,如varchar(255),它是1个字节。鉴于此,我指定长度为100的好处是什么。以一个异常值为例,如果我的文件路径超过varchar(100),数据库是否拒绝/修剪文件路径值以适应100?还是它允许它超过100个,因为分配的内存空间仍然在1个字节左右?

本质上面的解释框架,我的问题是应一个尝试是非常具体的关于为表列所期望的最大长度是多少?或者只是安全地玩,并根据内存需求指定表列预期长度的上限?

谢谢了!

Parijat

回答

1

MySQL会将值自动截断为100个字符。 text/char字段括号中的数字是MAXIMUM长度。请注意,这是一个CHARACTER限制。如果您在该字段上有多字节排序规则,则可以在该字段中存储超过100个字节,但只能存储100个字符的文本。

这比说INT(10),其中方括号内的数目仅是为了显示的目的不同。无论您允许多少个数字(#),int在内部都是一个int,并占用16位,但绝对不会超过这些#位数的SEE

+0

MySQL的WIL ** **不如果是在严格模式下运行的自动截断。 – michael667

+0

是的,但事实并非如此。 –

+0

什么是平时的,什么不是100%取决于你的设置。 MySQL 5安装在严格模式下默认运行。 – michael667

1

非常具体的关于为表列所期望的最大长度是多少?或者只是发挥它的安全

如果一个将使包含地址的表,你肯定知道会有某种限制的地址的长度。在数据库中允许更长的字段是没有用的。

你应该发挥它的安全,并要非常小心。