具有固定行数的MySQL表?

具有固定行数的MySQL表?,mysql,sql,row,Mysql,Sql,Row,我有表文档id、名称、时间。是否有特殊的sql命令将表限制设置为10行 不,您无法设置mysql表的限制,您可以使用删除行的触发器来实现。不,您无法设置mysql表的限制,您可以使用删除行的触发器来实现。因此,如果您有这样的表: CREATE TABLE documents ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR( 99 ) NOT NULL, `time` DATETIME NOT NULL )

我有表文档id、名称、时间。是否有特殊的sql命令将表限制设置为10行

不,您无法设置mysql表的限制,您可以使用删除行的触发器来实现。

不,您无法设置mysql表的限制,您可以使用删除行的触发器来实现。

因此,如果您有这样的表:

CREATE TABLE documents (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR( 99 ) NOT NULL,
  `time` DATETIME NOT NULL
) ENGINE = MYISAM
然后,您可以使用这个可怕的查询来限制行数,方法是循环使用具有最低id字段的行:


有人请确认这个查询是否是原子的,我想是的,但谁知道…

所以,如果您有这样一个表:

CREATE TABLE documents (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR( 99 ) NOT NULL,
  `time` DATETIME NOT NULL
) ENGINE = MYISAM
然后,您可以使用这个可怕的查询来限制行数,方法是循环使用具有最低id字段的行:


有人请确认这个查询是否是原子的,我想是的,但是谁知道…

如果您只想显示最近生成的10个文档,不需要单独的表。只需在现有表上使用查询:

SELECT id, name, `time`
FROM documents
ORDER BY `time` DESC
LIMIT 10

如果您只想显示最近生成的10个文档,则不需要单独的表。只需在现有表上使用查询:

SELECT id, name, `time`
FROM documents
ORDER BY `time` DESC
LIMIT 10

您希望限制表中的行数,还是限制select语句返回的行数?我需要限制表中的行数,然后查看Haim的答案。这在传统意义上是不可能的。我也可以问你为什么要这样做吗?我相信还有另一种方法可以实现您所需的功能。此表中包含已保存文档名称的信息,因此我使用此表来显示最近生成的10个文档。您是否希望限制表中的行数,或者select语句返回的行数?我需要限制表中的行数,然后查看Haim的答案。这在传统意义上是不可能的。我也可以问你为什么要这样做吗?我相信还有另一种方法可以实现您所需的功能。此表中包含已保存文档名称的信息,因此我使用此表来显示最近生成的10个文档