Как создать триггер, который вставляет в различные схемы базы данных на основе выбора в MYSQL - PullRequest
0 голосов
/ 20 января 2019

Как создать триггер, который вставляется в таблицу (tb_areas), но эта таблица существует в нескольких схемах базы данных.

Точно, когда схема базы данных client-8c9a6e81-8bbb-4fec-8828-f623623031fb вставлена ​​в ваш tb_areas, триггер вставляет значение этой вставки во все таблицы (tb_areas) всех других схем.

Я предполагаю, что мне нужно сначала сделать SELECT, перечислив все схемы базы данных, кроме первой схемы базы данных, и использовать для выполнения чего-то вроде FOREACH, для каждого имени схемы выполнить INSERT.

Конечно, это очень легко сделать в PHP, но я хотел снять эту ответственность с системы, чтобы оставить ее непосредственно в базе данных.

+----------------------------------------------+
| Database                                     |
+----------------------------------------------+
| cliente-8c9a6e81-8bbb-4fec-8828-f623623031fb |
| cliente-8cc42c57-4148-4338-8fc7-17d868fa075e |
| cliente-8cc42c57-4148-4338-8fc7-17d868fa080a |
| cliente-8cc42c57-4148-4338-8fc7-17d868fa090b |
| cliente-...                                  |
| cliente-...                                  |
| main_database                                |
+----------------------------------------------+

Схема main_database имеет в своей таблице (tb_tenants) имена всех схем.

+----+----------------------------------------------+
| id | uuid                                         |
+----+----------------------------------------------+
|  1 | cliente-8c9a6e81-8bbb-4fec-8828-f623623031fb |
| 11 | cliente-8cc42c57-4148-4338-8fc7-17d868fa075e |
| 12 | cliente-8cc42c57-4148-4338-8fc7-17d868fa080a |
| 13 | cliente-8cc42c57-4148-4338-8fc7-17d868fa090b |
| 14 | cliente-...                                  |
+----+----------------------------------------------+
...