如何在 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的主要内容,如果未能解决你的问题,请参考以下文章
TYPE_INT_RGB 和 TYPE_INT_ARGB 的格式
一背景 1.如何设置标签的背景颜色 在CSS中有一个background-color:属性值;,就是专门用来设置标签的背景颜色。 取值:具体单词RGBRGBA十六进制 例子