MySQL数据类型 int什么意思

MySQL数据类型 int什么意思,第1张

int(m)

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>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9999305.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存