我有一些现在大于INT可以处理的数字.
这有点令人尴尬,但老实说我并不确切知道BIGINT(8)的含义.8是最大位值还是最大长度?
那么BIGINT(1)只能是一位数?或者是BIGINT(1)还有别的吗?我认为tinyint(1)max是127,这是怎么回事?
我能做出的最大的BIGINT是什么?我可以作为整数存储在mysql中的最大数字是多少?
我正在使用phpMyAdmin来创建我的表结构.
我可以从MySQL的文档页面上读到有关整数类型的大小限制: MySQL整数类型参考
所以这里是我在创建专栏时感到困惑的地方.
我想在表中创建一个列:tbl_note_categories
调用notescounter
我不认为自己会在tbl_notes
任何具体的情况下创造成千上万的音符categoryid
.但我相信我会为每个categoryid创建数百个音符.
我正在选择:tinyint,smallint,mediumint.根据上面的文档链接,我猜测smallint是我的最佳选择.
所以这是我的困惑.PhpMyAdmin要求指定Length/Values参数.我要确保这个新列(notescounter
)是无符号的,给我高达65536.这是否意味着我需要长度/值为(5)?
我猜长度是字符长度,但我不确定.(与varchar比较)
简化表结构:
CREATE TABLE IF NOT EXISTS `hpa` (
`id` bigint(15) NOT NULL auto_increment,
`core` varchar(50) NOT NULL,
`hostname` varchar(50) NOT NULL,
`status` varchar(255) NOT NULL,
`entered_date` int(11) NOT NULL,
`active_date` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `hostname` (`hostname`),
KEY `status` (`status`),
KEY `entered_date` (`entered_date`),
KEY `core` (`core`),
KEY `active_date` (`active_date`)
)
Run Code Online (Sandbox Code Playgroud)
为此,我有以下SQL查询,它简单地总计了具有已定义状态的所有记录.
SELECT core,COUNT(hostname) AS hostname_count, MAX(active_date) AS last_active
FROM `hpa`
WHERE
status != 'OK' AND status != 'Repaired'
GROUP BY core
ORDER BY core
Run Code Online (Sandbox Code Playgroud)
此查询已简化为将INNER JOINS移除到不相关的数据和不应影响问题的额外列.
MAX(active_date)对于特定日期的所有记录都相同,应始终选择最近一天,或允许从NOW()偏移.(这是一个UNIXTIME字段)
我想要两个计数:(状态!='确定'和状态!='修复') …
我有一个带有外键约束的数据库,其中 int(10) 引用 int(11)。我还有 int(11) 参考 int(10)。
他们没有任何错误。这会在未来造成问题吗?(除了整数空间不足的问题)
当尝试更改 varchar 的列大小时,我遇到了一种相关问题: