我有一个场景,只要在另一个表中添加或删除行时,就需要自动更新表行中的值。我不知道怎么做.BTW我正在使用phpmyadmin来管理我的数据库。提前谢谢。
pages Table
------------
page_no
no_of_choices
choices Table
-------------
page_no
choice_no
当我添加选项编号1和page_no的选项时,应该使用no_of_choices = no_of_choices + 1
更新具有行page_no = 1的表页面答案 0 :(得分:1)
您可以使用触发器。
例如:
CREATE TRIGGER `test1`
AFTER INSERT ON `tbl1`
FOR EACH ROW SET NEW.upd_fld = new_value
同样可以删除。
您还可以从phpMyAdmin
创建触发器答案 1 :(得分:0)
表A:page_no,no_of_choices 表B:page_no,choice_no ...
使用关系数据库,您很少需要重复数据。如果某些内容在某些时候中断,您将不知道应该信任哪些 - 表B中的行,或表A中的no_of_choices。更好的解决方案是执行以下操作之一(取决于您要查询的表):< / p>
SELECT COUNT(no_of_choices) FROM B WHERE page_no = 1
或
SELECT A.*, COUNT(choice_no) AS choice_no FROM A LEFT JOIN B USING(page_no)
你得到相同的结果,但现在你有一条记录要离开,所以你不会有不一致的数据。