使用触发器,mySQL版本5.5

时间:2016-06-14 14:45:36

标签: mysql mysqladmin

我有1个表,其中包含id(自动增量),用户名,电子邮件,图标,评论,评级,日期(在更新current_timestamp上,左侧为空,因为now()不起作用,因此必须在日期之前)并计数。< / p>

我想要做的是为每次删除设置一个触发器(count + 1),每次删除(count -1)。最终结果将用于分页,所以如果我有10条评论5到页面(10/2) - &gt; #pagination有两页。无论如何,我想欢迎使用AJAX jquery,JSON等响应式网页设计;

我的SQL代码如下所示,有关计数的插入更新,但计数没有递增,我也将如何删除!

data.frame(lapply(df, function(x) if(class(x)=="character") trimws(x) else(x)), stringsAsFactors=F)

版本5.5!

我认为值需要保存为整数,但这是猜测!

1 个答案:

答案 0 :(得分:2)

如果要保留所有记录计数,最好将其保存在另一个表中,并更改update命令以增加和减少字段。

由于使用了count(*),您的代码(如果有效)非常慢。

使用类似的东西:

DELIMITER $$
CREATE
TRIGGER `CommentsTrigger` AFTER INSERT ON Comments
FOR EACH ROW
BEGIN
UPDATE tbl_stat
SET counts = counts+1;
END $$
DELIMITER ;


DELIMITER $$
CREATE
TRIGGER `CommentsTrigger` AFTER DELETE ON Comments
FOR EACH ROW
BEGIN
UPDATE tbl_stat
SET counts = counts-1;
END $$
DELIMITER ;

您必须创建tbl_stat(id int,count int)。

并创建上述删除triger,除了“counts = counts-1”。

只有一次插入您的评论表行数到tbl_stat。

编辑:我将插入前的插入更改为。

编辑:我添加了删除触发器。