具有固定行数的MySQL表?
我有表文档id、名称、时间。是否有特殊的sql命令将表限制设置为10行 不,您无法设置mysql表的限制,您可以使用删除行的触发器来实现。不,您无法设置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 )
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个文档