0

我有 1 个表,其中包含 id(自动增量)、用户名、电子邮件、图标、评论、评级、日期(在更新 current_timestamp 时,留空,因为 now() 不起作用,所以必须提前)和计数。

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

下面显示了我的 SQL 代码,用于对计数进行插入更新,但计数没有增加,我将如何删除呢!

DELIMITER $$
CREATE
TRIGGER `CommentsTrigger` BEFORE INSERT ON Comments
FOR EACH ROW
BEGIN
UPDATE Comments
SET counts = (Select COUNT(*) from Comments)+ 1;
END $$
DELIMITER;

5.5版!

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

4

1 回答 1

2

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

由于使用了 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, counts int)。

并像上面一样创建删除触发器,除了“counts = counts-1”。

仅一次将您的评论表行数插入 tbl_stat。

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

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

于 2016-06-14T15:25:16.077 回答