MySQL更新bigint字段
如何更新MySql数据库bigint字段 目前,我们的数据库有一个bigint(196605)字段,该字段正在生成错误。我很确定字段限制是250,即bigint(250),这解释了产生的错误 字段本身只存储3位整数值,例如100,所以我不知道为什么它甚至是bigint。在任何情况下,我都需要在不丢失任何数据的情况下修复字段MySQL更新bigint字段,mysql,sql,database,bigint,Mysql,Sql,Database,Bigint,如何更新MySql数据库bigint字段 目前,我们的数据库有一个bigint(196605)字段,该字段正在生成错误。我很确定字段限制是250,即bigint(250),这解释了产生的错误 字段本身只存储3位整数值,例如100,所以我不知道为什么它甚至是bigint。在任何情况下,我都需要在不丢失任何数据的情况下修复字段 任何帮助都将不胜感激 这是一个常见的困惑BIGINT类型具有固定大小存储在8B上,因此BIGINT(1)和BIGINT(20)之间的唯一区别是将显示的位数分别为1位和20位
任何帮助都将不胜感激 这是一个常见的困惑
BIGINT
类型具有固定大小存储在8B上,因此BIGINT(1)
和BIGINT(20
)之间的唯一区别是将显示的位数分别为1位和20位
如果您只存储3位数字,并且您认为不需要更多,则可以使用SMALLINT UNSIGNED
类型,该类型只需要2B而不是8B,这样可以节省大量空间并提高性能
我建议您先阅读。可能是在创建数据库字段时,您设置了它的长度,如果我们没有设置任何长度,那么我认为默认值为11。但是如果我们通过,那么它将以指定的值作为长度。在您执行某项操作之前,请将数据导出(备份)到SQL文件(自动生成的数据插入)以保存数据,然后再更改表,您知道如果数据丢失,您可以导入数据 如果要更改列,必须按如下方式更新表:
ALTER TABLE tableName CHANGE columnName newColumnName BIGINT(250)代码>
我认为这应该行得通
没有测试(我使用MS SQL Server 2008,无法检查它是否有效)感谢您澄清,bigint(196605)确实太大,我很确定它无效,即最大大小为bigint(250),但我不确定如何更新字段以减少值。ALTER TABLE MODIFY SMALLINT UNSIGNED代码>由于您正在存储3位数字谢谢,这正是我需要的。如果字段类型从BIGINT更改为SMALLINT,列数据会丢失吗?如果该列中的值没有超过SMALLINT
的限制,即65535(无符号),则不会丢失。我得到错误“1347-”。不是基表