如何在MySQL中所有行都具有TRUE值后触发INSERT函数?

时间:2016-10-13 06:50:59

标签: php mysql triggers

这是问题所在。我正在建立一个网站,帮助人们分享一本书的章节。本书有30章,每章都标记为已读,我希望我的数据库在章节表中创建下一组章节。我不知道这是否是一种有效的方法,或者我应该在条件下使用PHP。

以下是我的章节表:

CREATE TABLE `chapters` (
  `chapter_id` int(11) NOT NULL,
  `chapter_no` int(11) NOT NULL,
  `completion_cycle` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `read` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

当第一个完成周期的30个章节的所有读取值都为TRUE(或等于1)时,我希望我的MySQL在章节表中添加30行以及新的完成周期ID。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

首先,创建表

CREATE TABLE `chapters` (
  `chapter_id` int(11) NOT NULL,
  `chapter_no` int(11) NOT NULL,
  `completion_cycle` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `read` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在PHP或cron作业中,您现在可以使用以下方法检查章节是否已完成:

SELECT COUNT(*)
FROM chapters
WHERE completion_cycle=0
AND read=0;

如果上面的查询返回0结果,则表示所有章节都已完成并读取。所以你可以插入下一个。

INSERT INTO chapters (chapter_no, completion_cycle, user_id, read)
VALUES
('...', 0, '...', 0);

现在插入下一章