创建触发器:通过将数据插入另一个 table 行来更新 table 列
Create Trigger : update table column by inserting data into another table rows
请帮我创建触发器,
我有 2 table 个
data
+---------+------------+-------+-------+
| id | info_id | rate | qty | total |
+----+---------+------------+----------+
| 80 | 10 | 150 | 5 | 750 |
+----+---------+-------+-------+-------+
| 81 | 10 | 50 | 5 | 250 |
+--------------+-------+-------+-------+
info
+---------+---------------+------------+
| id | name | gtotal | dated |
+-----+--------+----------+------------+
| 10 | Hari | NULL | 2021-05-15 |
+---------+------------+---------------+
我想通过 phpmyadmin 创建一个触发器,一旦数据被插入,然后 info.gtotal
将通过从 [=24= 匹配的 info_id
添加 data.total
来更新] 名称-数据。
如果数据更新也发生,将触发什么。我只想创建两个触发器。
我是新手,请帮助我。接受任何帮助。
您需要创建两个触发器,一个用于插入,另一个用于更新。
CREATE TRIGGER `insert_trigger`
AFTER INSERT ON `data`
FOR EACH ROW
UPDATE info
SET gtotal = gtotal + new.total
WHERE id = new.info_id;
Here new.info_id will have the info_id value of newly insert record
CREATE TRIGGER `update_trigger`
AFTER UPDATE ON `data`
FOR EACH ROW
UPDATE info
SET gtotal = (gtotal - old.total) + new.total
WHERE id = new.info_id;
Here old.total will have the total value of record before updating. new.total is the total value after updation.
由于您没有说明更新后要做什么,我添加了从旧总计中减去总计并添加新总计值的逻辑。根据您的要求进行更改。
您还可以在 phpmyadmin 中使用 GUI 创建这些触发器。您必须 select 菜单栏中的触发器并添加触发器定义。
请帮我创建触发器, 我有 2 table 个
data
+---------+------------+-------+-------+
| id | info_id | rate | qty | total |
+----+---------+------------+----------+
| 80 | 10 | 150 | 5 | 750 |
+----+---------+-------+-------+-------+
| 81 | 10 | 50 | 5 | 250 |
+--------------+-------+-------+-------+
info
+---------+---------------+------------+
| id | name | gtotal | dated |
+-----+--------+----------+------------+
| 10 | Hari | NULL | 2021-05-15 |
+---------+------------+---------------+
我想通过 phpmyadmin 创建一个触发器,一旦数据被插入,然后 info.gtotal
将通过从 [=24= 匹配的 info_id
添加 data.total
来更新] 名称-数据。
如果数据更新也发生,将触发什么。我只想创建两个触发器。
我是新手,请帮助我。接受任何帮助。
您需要创建两个触发器,一个用于插入,另一个用于更新。
CREATE TRIGGER `insert_trigger`
AFTER INSERT ON `data`
FOR EACH ROW
UPDATE info
SET gtotal = gtotal + new.total
WHERE id = new.info_id;
Here new.info_id will have the info_id value of newly insert record
CREATE TRIGGER `update_trigger`
AFTER UPDATE ON `data`
FOR EACH ROW
UPDATE info
SET gtotal = (gtotal - old.total) + new.total
WHERE id = new.info_id;
Here old.total will have the total value of record before updating. new.total is the total value after updation.
由于您没有说明更新后要做什么,我添加了从旧总计中减去总计并添加新总计值的逻辑。根据您的要求进行更改。
您还可以在 phpmyadmin 中使用 GUI 创建这些触发器。您必须 select 菜单栏中的触发器并添加触发器定义。