MySQL 如果触发器不存在就创建?

MySQL Create Trigger if no exists?

SELECT trigger_schema, trigger_name from information_schema.triggers;

+------------------------+------------------+
| trigger_schema         | trigger_name     |
+------------------------+------------------+
| tv_client1             | public_id        |
+------------------------+------------------+

我想为 tv_client2 添加一个现有的触发器 public_id。 触发器不存在如何创建?

最终结果应该是:

SELECT trigger_schema, trigger_name from information_schema.triggers;

+------------------------+------------------+
| trigger_schema         | trigger_name     |
+------------------------+------------------+
| tv_client1             | public_id        |
+------------------------+------------------+
| tv_client2             | public_id        |
+------------------------+------------------+

使用联合语句

SELECT trigger_schema, trigger_name from information_schema.triggers
union all
select "tv_client2" as trigger_schema, "public_id" as trigger_name
from information_schema.triggers;

你的问题有点难以理解,所以我相信这就是你要问的。如果您已经有一个现有的 public_id 那么代码应该是

SELECT trigger_schema, trigger_name from information_schema.triggers
union all
select "tv_client2" as trigger_schema, trigger_name
from information_schema.triggers;

查询 SELECT trigger_schema, trigger_name from information_schema.triggers; 显示数据库名称和触发器名称。在您的情况下,public_id 触发器已在 tv_client1 数据库中创建。如果您希望 tv_client2 数据库中存在相同的触发器,那么您也可以对 tv_client2 数据库执行相同的 CREATE TRIGGER public_id ... 代码,然后相同的代码将反映在 information_schema.triggers 中.