MYSQL>;在int(11)中插入蒸汽id,且nosteam帐户似乎很长
我的一个朋友向我求助,他有steam游戏的服务器。他使用一个mysql数据库,在他的游戏中有一个储存STEAM ID(游戏中玩家的ID)的插件 我已经测试了游戏外的数据(STEAM ID从64位转换为32位),并将其与插入db中的数据进行了比较。。。结果不一样 奇怪的是,一个ID“215032574”在mysql数据字段int(11)中变成了“-2144934722” 我已经测试了游戏中的所有PHP和SMX代码,以验证所有数据。。。根据我的说法(但我不确定),它将来自SQL和数据(ID)长度的关系,而不是代码 是否可能ID的长度太大(可能是因为无符号的ID值?)并且被转换为负值?我不知道如何转换为负值 我能做些什么来解决这个问题?例如,我设想将int(11)更改为varchar(128)。。。但这对我来说太残忍和不正常了 有人能帮忙吗 干杯。 带符号的MYSQL>;在int(11)中插入蒸汽id,且nosteam帐户似乎很长,mysql,Mysql,我的一个朋友向我求助,他有steam游戏的服务器。他使用一个mysql数据库,在他的游戏中有一个储存STEAM ID(游戏中玩家的ID)的插件 我已经测试了游戏外的数据(STEAM ID从64位转换为32位),并将其与插入db中的数据进行了比较。。。结果不一样 奇怪的是,一个ID“215032574”在mysql数据字段int(11)中变成了“-2144934722” 我已经测试了游戏中的所有PHP和SMX代码,以验证所有数据。。。根据我的说法(但我不确定),它将来自SQL和数据(ID)长度的关
INT
s(11
与字段可以存储的最大值无关)最多可以存储2147483647个值UNSIGNED INT
s最多可以存储4294967295的值。但是,由于您编写了存储215032574后得到的值为负值,因此您的字段不是无符号的,因此只能存储2147483647以下的值
假设您的字段上没有主键或外键约束,您可以ALTER
使其UNSIGNED
,如下所示:ALTER TABLE streamids MODIFY COLUMN streamid INT(11)UNSIGNED代码>
带符号的INT
s(11
与字段可以存储的最大值无关)最多可以存储2147483647个值UNSIGNED INT
s最多可以存储4294967295的值。但是,由于您编写了存储215032574后得到的值为负值,因此您的字段不是无符号的,因此只能存储2147483647以下的值
假设您的字段上没有主键或外键约束,您可以ALTER
使其UNSIGNED
,如下所示:ALTER TABLE streamids MODIFY COLUMN streamid INT(11)UNSIGNED代码>好的,只需将字段authId的结构从int()更改为bigint()即可解决问题
ALTER TABLEDBTABLE
CHANGEFIELD
FIELD
BIGINT(255)NOT NULL确定只需将字段authId的结构从int()更改为BIGINT()即可解决问题
ALTER TABLEDBTABLE
CHANGEFIELD
FIELD
BIGINT(255)NOT NULL响应良好!完美的解释!如果我将结构从int改为bigint(),会怎么样?反应很好!完美的解释!如果我将结构从int更改为bigint(),该怎么办?