Los triggers pueden ser consultados desde information_schema.triggers y estos si se crean para cada base de datos.
Código MySQL:
Ver originalmysql
> DESC information_schema.triggers
;+----------------------------+--------------+------+-----+---------+-------+
+----------------------------+--------------+------+-----+---------+-------+
| EVENT_MANIPULATION
| varchar(6) | NO | | | | | EVENT_OBJECT_CATALOG
| varchar(512) | YES
| | NULL | | | EVENT_OBJECT_SCHEMA
| varchar(64) | NO | | | | | EVENT_OBJECT_TABLE
| varchar(64) | NO | | | | | ACTION_ORDER
| bigint(4) | NO | | 0 | | | ACTION_ORIENTATION
| varchar(9) | NO | | | | | ACTION_REFERENCE_OLD_TABLE
| varchar(64) | YES
| | NULL | | | ACTION_REFERENCE_NEW_TABLE
| varchar(64) | YES
| | NULL | | | ACTION_REFERENCE_OLD_ROW
| varchar(3) | NO | | | | | ACTION_REFERENCE_NEW_ROW
| varchar(3) | NO | | | | +----------------------------+--------------+------+-----+---------+-------+
19 rows
in set (0.00 sec
)
al momento de hacer un selected_db y crear el trigger el campo trigger_schema almacena la base de datos donde fue creada.
No se bien que tratas de hacer desde php y cual es la logica de tu sistema, pero estas practicas no son para nada recomendables y mucho menos en la creación de triggers.
Si bien los triggers son una excelente herramienta, su uso debe ser moderado. Llega un punto donde es muy dificil detectar inconsistencias en el sistema a causa de estos objetos. Si a esto le adicionas que desde un sistema web, un usuario va a poder crear triggers tu sistema puede convertirse en un verdadero caos.
Si nos cuentas un poco mas que quieres hacer, te podemos recomendar una solución mas adecuada al problema.
saludos