0

我有一个场景,需要在另一个表中添加或删除行时自动更新表行中的值。我不知道该怎么做。顺便说一句,我正在使用 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 的表页

4

2 回答 2

0

您可以使用触发器。

例如:

CREATE TRIGGER `test1` 
AFTER INSERT ON `tbl1`
FOR EACH ROW SET NEW.upd_fld =  new_value

对于删除也可以这样做。

您还可以从 phpMyAdmin 创建触发器

于 2013-04-13T07:00:46.253 回答
0

表 A:page_no、no_of_choices 表 B:page_no、choice_no...

使用关系数据库,您很少需要重复数据。如果在某些时候出现问题,您将不知道该信任哪个 - 表 B 中的行或表 A 中的 no_of_choices。更好的解决方案是执行以下操作之一(取决于您正在查询的表):

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)

您得到相同的结果,但现在您有一条记录要关闭,因此您不会有不一致的数据。

于 2013-04-13T08:25:54.077 回答