如果第一个表上存在值,则在一个查询中运行多个表的查询

时间:2017-05-04 19:02:11

标签: php sql pdo

现在我有以下表结构和查询,我认为这是一个不好的做法,并且在服务器上的负载比它应该更重,这里是表结构,其中包含查询所使用或需要的列: / p>

public Death deathMenu; void Start() { deathMenu = GameObject.Find("Death Menu").GetComponent<Death>(); }

tbl1 :

id : int (primary key) customer : varchar license : int (fk_license --> tbl2)

tbl2:

现在,每当我必须从license : int count : int 删除数据时,我想将计数从tbl减少1.现在我正在运行多个查询

tbl2

我正在使用PDO和绑定参数,但为了简单起见,尽可能简单地将sql查询放在这里。

我的问题是我可以在一次数据库中执行这些操作吗?或者至少两次,如果不是一次?

1 个答案:

答案 0 :(得分:0)

在这种情况下使用触发器。

步骤1更改分隔符:

delimiter $$

步骤2创建触发器:

CREATE TRIGGER `reduce_count`     
  AFTER DELETE ON `tbl1`     
  FOR EACH ROW     
BEGIN
  UPDATE tbl2 SET count = count - 1 WHERE license =  OLD.license ;
END
$$

步骤3恢复分隔符:

delimiter ;

更新:我根据您的描述创建了类似的表格, T3喜欢table1,t4喜欢table2。 从t3删除时,t4的计数减少了。 enter image description here