ash*_*exm 3 mysql stored-procedures
我目前有PHP代码处理逻辑,因为我不知道如何在SQL中处理它.我想创建一个存储过程,删除除给定config_id的最新行之外的所有行.IE config_id = 5被传递给SP,因此它知道它要清理哪个config_id.
CREATE TABLE `TAA`.`RunHistory` (
`id` int(11) NOT NULL auto_increment,
`start_time` datetime default NULL,
`stop_time` datetime default NULL,
`success_lines` int(11) default NULL,
`error_lines` int(11) default NULL,
`config_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
`notes` text NOT NULL,
`log_file` longblob,
`save` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
最新的将由start_time确定,如果stop_time为null但不是最新的应删除(如果运行被毫不客气地杀死,则stop_time可以为null).
Lui*_*tti 12
DELETE FROM `runHistory`
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM `runHistory`
ORDER BY start_time DESC
LIMIT 5
) foo
);
Run Code Online (Sandbox Code Playgroud)