sql语句如何用触发器删除数据
时间: 2023-07-04 09:18:28 浏览: 89
可以使用以下 SQL 语句创建一个触发器来删除数据:
```sql
CREATE TRIGGER trigger_name
AFTER DELETE ON table_name
FOR EACH ROW
BEGIN
DELETE FROM other_table WHERE some_column = OLD.some_column;
END;
```
其中,`trigger_name` 是触发器的名称,`table_name` 是要删除数据的表名,`other_table` 是要删除数据的另一个表名,`some_column` 是两个表之间关联的字段。
在触发器内部,使用 `OLD` 来引用被删除的行,然后可以使用 `DELETE` 语句来删除在 `other_table` 表中与被删除行相关的数据。
相关问题
sql语句删除触发器
要删除SQL语句中的触发器,可以使用DROP TRIGGER语句。具体步骤如下:
1. 首先,使用DROP TRIGGER语句来删除触发器。例如,要删除名为“trg_name”的触发器:
DROP TRIGGER trg_name;
2. 如果触发器依赖于其他对象,则需要先删除这些对象。例如,如果触发器依赖于表,则需要先删除表。可以使用DROP TABLE语句来删除表。例如,要删除名为“table_name”的表:
DROP TABLE table_name;
3. 如果触发器依赖于存储过程,则需要先删除存储过程。可以使用DROP PROCEDURE语句来删除存储过程。例如,要删除名为“proc_name”的存储过程:
DROP PROCEDURE proc_name;
SQL语句创建触发器表c和表ac之间级联更新与级联删除
可以使用以下SQL语句创建触发器实现表c和表ac之间的级联更新和级联删除:
创建触发器实现级联更新:
```
CREATE TRIGGER trigger_name
AFTER UPDATE ON c
FOR EACH ROW
BEGIN
UPDATE ac SET ac.col1 = NEW.col1 WHERE ac.col2 = OLD.col2;
END;
```
创建触发器实现级联删除:
```
CREATE TRIGGER trigger_name
AFTER DELETE ON c
FOR EACH ROW
BEGIN
DELETE FROM ac WHERE ac.col2 = OLD.col2;
END;
```
其中,`trigger_name` 是触发器的名称,`c` 和 `ac` 分别是需要进行级联更新或删除的表,`col1` 和 `col2` 是两个表中需要进行关联的列,`NEW` 和 `OLD` 分别代表更新前和更新后的数据行。
阅读全文