【发布时间】:2022-01-07 22:15:45
【问题描述】:
今天我不得不在我们的 mySQL 数据库中的一个表中添加几千行。在我添加行之前,我在表中添加了一个列dateAdded,默认设置为current_timestamp()(现有行将具有此列的NULL)。我添加了行,然后做了一些双重检查。奇怪的是:
- 如果我浏览
phpMyAdmin中的表格,它会显示Showing rows 0 - 24 (190,022 total ...) - 如果我搜索
dateAdded IS NULL的条目,我会得到 184,854 行 - 如果我搜索
dateAdded IS NOT NULL的条目,我会得到 6,779 行。没错,这就是我今天添加的数量
请注意,如果您将第 2 行和第 3 行的总行数相加,您会得到 191,633 行,但 1 声称只有 190,022 行。
我以前从未注意到这种事情。正常吗?我应该擦拭桌子并从头开始重新添加所有内容吗?
请注意,我将表格导出为 CSV 并在 Excel 中打开,果然有 191,633 行
【问题讨论】:
-
请注意,它说“显示行 0 - 24”(重点:我)——它显然是从零开始计数的。这很可能是 phpMyAdmin 中的错误或“功能”。您可以忽略它,尝试更新或简单地一起使用另一个客户端......不过我不会擦除数据库。除非
SELECT count(*) FROM that_table不等于SELECT count(*) FROM that_table WHERE dateadded IS NULL加上SELECT count(*) FROM that_table WHERE dateadded IS NOT NULL。那是必须匹配的数字,我的意思是 DBMS 直接给你的,而不是一些或多或少的好客户...... -
phpmyadmin 是一个性能特性,参见例如phpMyAdmin not showing all rows - wrong number of total records shown 和phpmyadmin - cfg - MaxExactCount 的文档
标签: mysql phpmyadmin