mysql TRIGGERS表里每个字段解释
时间: 2024-09-27 20:01:53 浏览: 35
在MySQL中,`TRIGGERS`系统视图并不直接包含表结构,因为触发器不是数据库中的标准表。然而,如果你想了解关于触发器的信息,你可以查看以下几个重要的字段:
1. `TRIGGER_NAME`: 触发器的名字。
2. `EVENT_OBJECT_ID`: 触发器关联的对象ID,如果是对表的操作则对应表的ID。
3. `ACTION_TIMING`: 触发器的动作时间,有BEFORE(在动作前执行)和AFTER(在动作后执行)两种。
4. `ACTION_SCHEMA`: 触发器所在的数据库名。
5. `ACTION_NAME`: 如果是函数型触发器,这里会显示函数名称;如果是基于列级别的触发器,将不会显示。
6. `OBJECT_SCHEMA`: 触发器关联的对象所在数据库的名称。
7. `OBJECT_TABLE`: 对应的表名或序列名。
8. `DEFINER`: 创建触发器的用户。
9. `CREATED`: 触发器的创建日期和时间。
10. `UPDATED`: 最后一次修改触发器的时间。
需要注意的是,查看`TRIGGERS`视图通常需要拥有足够的权限,比如`SHOW CREATE TRIGGER`语句可能会提供更详细的触发器定义。
相关问题
mysql --triggers
MySQL triggers are database objects that are automatically executed in response to specified events, such as INSERT, UPDATE, or DELETE statements being executed on a table. Triggers are used to enforce business rules, perform data validation, log, or automate complex actions within the database.
To view the triggers defined for a specific table in MySQL, you can use the following command:
```
SHOW TRIGGERS FROM <database_name> LIKE '<table_name>';
```
Replace `<database_name>` with the name of your database and `<table_name>` with the name of the table for which you want to view the triggers.
This command will display information about the triggers associated with the specified table, including their names, timing (BEFORE or AFTER), event (INSERT, UPDATE, DELETE), and the associated SQL statements.
mysql 触发器实现非主键字段自增
MySQL 触发器可以实现非主键字段的自增,具体实现步骤如下:
1. 创建一个表,并在表中创建一个自增列和需要自增的列,如下所示:
```sql
CREATE TABLE mytable (
id INT PRIMARY KEY AUTO_INCREMENT,
count INT DEFAULT 0
);
```
2. 创建一个触发器,在插入数据时自动更新需要自增的列,如下所示:
```sql
CREATE TRIGGER mytrigger BEFORE INSERT ON mytable
FOR EACH ROW SET NEW.count = (SELECT IFNULL(MAX(count),0) + 1 FROM mytable);
```
这个触发器的作用是在插入数据之前,查询表中最大的 count 值并加 1,然后将新的 count 值赋给插入的数据。
3. 插入数据,观察结果,如下所示:
```sql
INSERT INTO mytable (count) VALUES (NULL);
INSERT INTO mytable (count) VALUES (NULL);
INSERT INTO mytable (count) VALUES (NULL);
SELECT * FROM mytable;
```
查询结果如下:
```
+----+-------+
| id | count |
+----+-------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+----+-------+
```
可以看到,每次插入数据时,count 值都会自动加 1。
注意事项:
- 触发器只能在 INSERT、UPDATE 和 DELETE 操作时触发,因此如果需要更新已有数据的 count 值,需要手动执行 UPDATE 语句或者重新插入新的数据。
- 如果同时存在多个触发器,需要注意它们的执行顺序,否则可能会出现意料之外的结果。可以使用 SHOW TRIGGERS 命令查看当前数据库中的触发器信息。
阅读全文