查询以检查MYSQL表上是否存在触发器

时间:2013-01-21 11:08:38

标签: php mysql sql database

是否有查询列出了为特定表上的任何事件创建的所有触发器。

假设我有一个名为client的表,我想列出该表上任何事件(例如插入/更新/删除等)的所有触发器。

感谢任何形式的帮助

2 个答案:

答案 0 :(得分:21)

SHOW TRIGGERS

SHOW TRIGGERS LIKE '<tablename>'

e.g。

SHOW TRIGGERS LIKE 'client'

答案 1 :(得分:0)

可接受的答案是正确且最直接的方法,但是要增强对表上触发器的视图并更好地控制返回值,请使用INFORMATION_SCHEMA:

const store = isDevMode ? createStore<ApplicationState>( rootReducer, initialState, composeEnhancers(applyMiddleware(...middleware)), ) : createStore<ApplicationState>( rootReducer, initialState, applyMiddleware(...middleware), );

使用此方法,您可以过滤select * from INFORMATION_SCHEMA.TRIGGERS where EVENT_OBJECT_TABLE='client';(表名),EVENT_OBJECT_TABLETRIGGER_SCHEMA(插入,更新,删除等)以及其他一系列属性。

如上面的评论所指出的,您还需要对此方法具有TRIGGER权限。