我正在编写一份反馈表,允许学生就特定主题提供反馈。 我有一个包含3个字段“ID,Unique No,Password”的表格,其中存储了学生入学编号。现在这就是我想要的。 每个学生完成反馈后,必须自动删除表中的特定数据。 请帮忙。
答案 0 :(得分:1)
之前解释过使用触发器。只需单击触发器并创建一个触发器,该触发器在表中记录学生反馈的INSERT
之后发生。你可以做这样的事情
我不同意,但使用触发器是一种很好的做法。触发器是业务逻辑,它们的逻辑应该在您的代码中实现。在应用程序和数据库中分离业务逻辑会使下一个开发人员难以处理,因为他不知道在哪里查看。我认为使用它们的唯一原因是它可以用于分布式数据库,以使它们相互更新。
答案 1 :(得分:1)
这可以使用JOIN
来完成,但我会在此处演示触发器,因为我在上面的评论中提到了它。
我假设你有另一张桌子存放学生的反馈数据。在这个例子中,我们称之为students_feedback
,另一个students_admission
。
使用MySQL Triggers,您可以让数据库自动删除学生录取数据ON INSERT
。您将要在创建上使用,因为只要反馈数据存储在students_feedback表中,就会触发INSERT事件。
CREATE TRIGGER delete_admission AFTER INSERT
ON students_feedback FOR EACH ROW
BEGIN
DELETE FROM students_admission WHERE students_admission.id=OLD.id LIMIT 1;
END;
在此处使用您想要的任何DELETE查询。
注意:在MySQL 5.0.10之前,触发器不能按名称包含对表的直接引用。