mysql trigger after update multiple another table -
i have 2 tables
"description_acc_all_lang" - contains translations of text in 15 languages each field language translation
create table `description_acc_all_langs` (<br> `code` varchar(4) not null,(<br> `en_desc` varchar(256) not null,<br> `fr_desc` varchar(256) not null,<br> `es_desc` varchar(256) not null,<br> `pt_desc` varchar(256) not null,<br> `da_desc` varchar(256) not null,<br> `de_desc` varchar(256) not null,<br> `nl_desc` varchar(256) not null,<br> `no_desc` varchar(256) not null,<br> `sv_desc` varchar(256) not null,<br> `fi_desc` varchar(256) not null,<br> `pl_desc` varchar(256) not null,<br> `it_desc` varchar(256) not null,<br> `ru_desc` varchar(256) not null,<br> `cs_desc` varchar(256) not null,<br> `hu_desc` varchar(256) not null,<br> primary key (`code`)<br> ) engine=myisam default charset=utf8; a single record table
+------+-------------------------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+<br> | code | en_desc | fr_desc | es_desc | pt_desc | da_desc | de_desc | nl_desc | no_desc | sv_desc | fi_desc | pl_desc | it_desc | ru_desc | cs_desc | hu_desc |<br> +------+-------------------------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+<br> | hs | 30 minutes drive big supermarket | | | | | | | | | | | | | | |<br> +------+-------------------------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ code - 4 letter unique code
en_desc - english text
fr_desc - french text
es_desc - spanish text
.._desc - ....... text
etc
the 2nd table contains multiple records - 1 each of 15 language descriptions
code - 4 letter code <br> desc - text string - needs updated xx_desc field in "description_acc_all_langs" table lang - 2 letter country code. create table `description_acc` (<br> `acc_id` int(11) not null auto_increment,<br> `code` varchar(10) collate utf8_unicode_ci default null,<br> `desc` varchar(255) collate utf8_unicode_ci default null,<br> `lang` varchar(2) collate utf8_unicode_ci not null,<br> primary key (`acc_id`),<br> unique key `codelang` (`code`,`lang`)<br> ) engine=myisam auto_increment=211 default charset=utf8 collate=utf8_unicode_ci; extract table showing records code "hs" in languages
+--------+------+-----------------------------------------------------------------------+------+ | acc_id | code | desc | lang |<br> +--------+------+-----------------------------------------------------------------------+------+<br> | 25 | hs | 30 minut jÃzdy velkých supermarketů | cs |<br> | 18 | hs | 30 minutters kørsel til stort supermarked | da |<br> | 26 | hs | 30 minuten fahrt zum supermarkt | de |<br> | 14 | hs | 30 minutes drive big supermarket | en |<br> | 28 | hs | 30 minutos en coche de grandes supermercados | es |<br> | 21 | hs | 30 minuutin ajomatkan suuri supermarket | fi |<br> | 27 | hs | 30 minutes en voiture au grand supermarché | fr |<br> | 23 | hs | 30 perc autóútra nagy szupermarket | hu |<br> | 17 | hs | 30 minuti di auto grande supermercato | |<br> | 15 | hs | 30 minuten rijden naar grote supermarkt | nl |<br> | 19 | hs | 30 minutters kjøretur til store supermarked | no |<br> | 24 | hs | 30 minut jazdy na duży supermarket | pl |<br> | 16 | hs | 30 minutos de carro de um supermercado grande | pt |<br> | 22 | hs | 30 минÑÑ ÐµÐ·Ð´Ñ Ð´Ð¾ болÑÑого ÑÑпеÑмаÑкеÑа | ru |<br> | 20 | hs | 30 minuters bilfärd till stora snabbköp | sv |<br> +--------+------+-----------------------------------------------------------------------+------+<br> 15 rows in set (0.00 sec)<br> my trigger needs update record in each of "area_description_acc" language records if single field updated in "area_description_acc_all_langs"
in effect "area_description_acc_all_langs" contains translations , 1 code identifier in single record, "area_description_acc" contains 15 individual records each of 15 languages per code field "code" identify , language identifier field "lang"
i started try , understand how triggers constructed tying myself in knots
delimiter // create trigger update_all_recs after update on description_acc_all_langs each row begin update area_description_acc set desc = new.en_desc members_house_area_description_acc_all_langs.code=members_house_area_description_acc.code; end// delimiter ; any on how contruct trigger me understand, have chopped many examples after 2 days , coffee think need guidance , maybe therapy. regards.
are looking this?
delimiter $$ create trigger tg_update_all_recs after update on description_acc_all_langs each row begin update description_acc set `desc` = new.en_desc code = new.code , lang = 'en'; update description_acc set `desc` = new.fr_desc code = new.code , lang = 'fr'; update description_acc set `desc` = new.es_desc code = new.code , lang = 'es'; update description_acc set `desc` = new.pt_desc code = new.code , lang = 'pt'; -- continue other languages end $$ delimiter ;
Comments
Post a Comment