如何在 sql 中有一个 int > 255

Posted

技术标签:

【中文标题】如何在 sql 中有一个 int > 255【英文标题】:how to have an int >255 in sql 【发布时间】:2020-02-28 05:29:05 【问题描述】:

我是非常 SQL 新手,对它知之甚少。但是,我正在尝试为每一行添加一列,以便每个用户以 2000 开头。我希望这个值是一个 int,所以我正在使用:

ALTER TABLE users
ADD amountChecking INT(2000);

我得到一个错误

错误 #1439 - 显示宽度超出范围 (max=255)

【问题讨论】:

显示宽度。 Int 具有固定大小,但其显示长度永远不会超过 255 位。 好的,那我怎样才能让 ammountChecking 的值在每一行都为 2000? 你设置的是位数,设置 DEFAULT 为 2000 就可以了 您使用什么数据库(Oracle、mysql、SQLServer 或其他),为什么还要“我希望这个值是 int”? 我正在使用 myphpadmin。我希望每个注册的用户都有 2000 美元。 【参考方案1】:

我相信您正在使用 MySQL,但如果这不起作用,请发表评论,以便我可以提供更多帮助...

尝试这样做:

假设您有一个这样创建的简单表:

create table wp_usermeta (first_column int);

如果您想使用 int 数据类型向该表添加新列,您可以这样做:

ALTER TABLE wp_usermeta
ADD amountChecking int;

然后您将能够像这样在该表中添加值 2000:

Insert into wp_usermeta values (2000, 2000);

这里是DEMO,在这个 DEMO 链接中,您可以看到这个小实验的结果并玩更多的东西来学习...

如果您想在有人没有向其中插入任何数据的情况下在此列中设置 DEFAULT 值 2000,那么您可以使用:

ALTER TABLE wp_usermeta
ADD amountChecking int default 2000;

请参阅DEMO 了解默认示例。

在您对您所问问题的评论中:

好的,那我怎样才能让每行的 amountChecking 值都为 2000?

然后这样做:

update wp_usermeta 
set amountChecking = 2000;

查看此DEMO 以了解其工作原理。

【讨论】:

成功了!我不得不更改一些东西以使其成为默认值,因此当每个用户注册时,他们的价值将是 2000。我真的不想打扰你;但是我怎样才能从 PHP 中获取这个 2000 的值来回显:你有 "$ammountChecking" 美元。 嗨@learningWebDev 我很乐意提供帮助。请您将此答案标记为正确,即接受它(例如:***.com/help/someone-answers)。还将您的问题作为新问题放在 *** 上。我不擅长 PHP。【参考方案2】:

您误解了 MySQL 整数数据类型的概念。 宽度(如int(10) 中的10)没有意义:它几乎不能指示客户在显示相关值时应该预期多少个字符。

As explained in the documentation,int 数据类型使用 4 个字节的存储空间:无符号整数可以存储范围 [0, 4294967295] 中的值,而有符号整数则涵盖范围 [-2147483648, 2147483647]。

这应该足以满足您的要求。我什至建议使用较小的整数存储,例如smallint(2 字节,如果无符号则最多 65535),或者可能是mediumint(3 字节,最多 16777215 无符号)。优化存储的重要性通常被低估,但从长远来看,它会带来更好的可扩展性。

【讨论】:

以上是关于如何在 sql 中有一个 int > 255的主要内容,如果未能解决你的问题,请参考以下文章

将 unsigned char > 255 转换为 int

将 int 写入值大于 255 的字节

TYPE_INT_RGB 和 TYPE_INT_ARGB 的格式

Sql Server 触发器和 PHP

一背景 1.如何设置标签的背景颜色 在CSS中有一个background-color:属性值;,就是专门用来设置标签的背景颜色。 取值:具体单词RGBRGBA十六进制 例子

如何插入从分配给 Dictionary<int, int> 的 SQL 表中提取的数据?(ASP.Net)