【发布时间】:2010-07-02 12:49:44
【问题描述】:
是否可以设置一个表在 MySQL 中可以容纳的行数? 我不想使用任何 java 代码。我想使用纯 mysql 脚本来做到这一点。
【问题讨论】:
-
我将此作为评论而不是答案,因为我从未使用过 MySQL,但在其他数据库中,您可以使用 CHECK 约束来完成此操作((SELECT COUNT(*) FROM table)
标签: mysql
是否可以设置一个表在 MySQL 中可以容纳的行数? 我不想使用任何 java 代码。我想使用纯 mysql 脚本来做到这一点。
【问题讨论】:
标签: mysql
我不建议尝试限制 SQL 表中的行数,除非您有充分的理由这样做。看来您最好使用如下查询:
select top 1000 entityID, entityName from TableName
而不是物理限制表格的行数。
但是,如果您真的想将其限制为 1000 行:
delete from TableName where entityID not in (select top 1000 entityID from TableName)
【讨论】:
Mysql 在创建(并且可能更改?)表时支持 MAX_ROWS 参数。 http://dev.mysql.com/doc/refman/5.0/en/create-table.html
编辑:遗憾的是,这只是优化的提示
“您计划在表中存储的最大行数。这不是硬性限制,而是对存储引擎的提示,即表必须能够存储至少这么多行。”
.. 你的问题暗示脚本没问题;让一个像 cron 作业一样简单的作业定期删除给定 ID 以上的表行是荒谬的吗?当某些东西试图添加太多行时,它并不像让 mysql 抛出错误那样优雅,但它会完成这项工作 - 你也许可以让你的应用程序也检查它的 ID 是否太高,并向用户/相关方发出警告。
【讨论】: