gpt4 book ai didi

Phpmyadmin 触发器

转载 作者:行者123 更新时间:2023-11-29 04:40:14 28 4
gpt4 key购买 nike

我需要在 phpmyadmin 中为 2 个表创建一个触发器。

所以有表 storestbl_storefinder_stores
我想从 stores 表中插入 4 个东西(名称、地址、经度、纬度)到 tbl_storefinder_stores,我通过这段代码在论坛中获得帮助

INSERT INTO tbl_storefinder_stores(store_name, store_address, lat, lon)
SELECT name, address, latitude, longitude
FROM stores;

及其工作!!

但现在我想要一个自动执行此操作的触发器,例如:如果我在表 Stores 中更改或添加任何内容,它会自动更新表 tbl_storefinder_stores,就像 4 件事(名称/地址/经度/纬度)的更新程序一样,如何在 phpmyadmin 中执行此操作?

最佳答案

你需要2个触发器

  • 当您在 stores 中添加一条新记录,然后将其复制到 tbl_storefinder_stores

  • 当您更新 stores 中的一些数据时,然后将它们也更新到 tbl_storefinder_stores

现在这 2 个表之间必须有一个公共(public)键,我假设 name 是这里的键。第一个触发器看起来像

delimiter //
create trigger stores_ins after insert on stores
for each row
begin
insert into tbl_storefinder_stores
(store_name, store_address, lat, lon)
values
(new.name,new.address,new.latitude,new.longitude);
end;//

delimiter ;

现在当你更新时它看起来像

delimiter //
create trigger stores_upd after update on stores
for each row
begin
update tbl_storefinder_stores
set
store_address = new.address,
lat = new.latitude,
lon = new.longitude
where store_name = new.name ;
end;//
delimiter ;

请注意,在第二个触发器中,我将 name 视为它们之间的公共(public)键,因此如果您更改第一个表中的名称,则触发器可能不会更新数据,因为它可能找不到行具有修改名称的第二个表。

所以如果你仍然想这样做,你可以这样做

delimiter //
create trigger stores_upd after update on stores
for each row
begin
update tbl_storefinder_stores
set
name = new.name,
store_address = new.address,
lat = new.latitude,
lon = new.longitude
where store_name = old.name ;
end;//
delimiter ;

关于Phpmyadmin 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30729712/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com