
zerofill,加上zerofill后m才表现出有点点效果,比如
int(3)
zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加
zerofill,则它们没有什么区别.m不是用来限制int个数的.int(m)的最大值和最小值与undesigned有关,最下面那副图有说明.
mysql>
create
table
t
(t
int(3)
zerofill)
query
ok,
0
rows
affected
(0.00
sec)
mysql>
insert
into
t
set
t
=
10
query
ok,
1
row
affected
(0.00
sec)
mysql>
select
*
from
t
+——+
|
t
|
+——+
|
010
|
+——+
1
row
in
set
(0.11
sec)
zerofill
with
default
width,
the
same
as
int(10):
mysql>
create
table
t
(t
int
zerofill)
query
ok,
0
rows
affected
(0.02
sec)
mysql>
insert
into
t
set
t
=
10
query
ok,
1
row
affected
(0.02
sec)
mysql>
select
*
from
t
+————+
|
t
|
+————+
|
0000000010
|
+————+
1
row
in
set
(0.08
sec)
without
zerofill:
mysql>
create
table
t
(t
int)
query
ok,
0
rows
affected
(0.01
sec)
mysql>
insert
into
t
set
t
=
10
query
ok,
1
row
affected
(0.01
sec)
mysql>
select
*
from
t
+——+
|
t
|
+——+
|
10
|
+——+
1
row
in
set
(0.00
sec)
INSERT 语句中, 字符串长度超过列的长度了。下面是一个重现的例子:
表里面 t 列长度为 varchar(10), 当你插入字符长度大于 10 的时候, 就要这个错误信息。
1>create table #test( t varchar(10) )
2>go
1>insert into #test values( '1234567890' )
2>go
(1 行受影响)
1>insert into #test values( '12345678901' )
2>go
消息 8152,级别 16,状态 14,服务器 TEST-PC\SQLEXPRESS,第 1 行
将截断字符串或二进制数据。
语句已终止。
1>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)