回答
“DELETE命令消防DML触发器DROP地方不会触发任何DML触发器””
在Oracle &一些其他DB提供触发器。触发器正在注意,但子例程将在DML操作(如INSERT,UPDATE,DELETE)上执行。 说更新表中的某一行时,可以调用触发器。
同样,当您执行删除语句时,可以执行触发器。通过触发器获得更多理解。
谢谢,现在它是有道理的。 – KajolK
DELETE
保留表格但删除其中的一些或全部行。 DROP
删除表及其所有数据,使表不再存在。
DROP删除表与数据和其他结构,如约束,索引,授权和触发器。所以触发器不会触发,因为在过程中它也被删除。
但我发现TRUNCATE不触发任何触发器。但TRUNCATE只会在数据不变的情况下删除数据。那么对于TRUNCATE怎么可能,或者我错了/错过了什么? – KajolK
有两种操作方式 - DML - 数据操作(语言)和DDL - 数据定义(语言)。 INSERT,UPDATE,DELETE是DML操作并将触发DML触发器。 CREATE TABLE,ALTER TABLE,DROP TABLE,TRUNCATE TABLE是DDL操作,不会触发DML触发器。 –
删除和名称解释将根据您的规范和要求从表中删除全部或部分行, 其中,drop将从表中删除该表。
至于触发器,这里就是一个例子。(他们只是开枪DMLS,不是的DDL) 我有一个表称为testmp2拥有员工详细信息和用于存储仅删除deatils另一个表testdelvalues员工记录。
这是我正在使用的示例触发器。
SQL> CREATE OR REPLACE TRIGGER testempdel
2 AFTER delete ON testemp2
3 FOR EACH ROW
4 BEGIN
5 INSERT INTO testdelvalues (empno,empname) values (:Old.empno,:Old.ename);
6 END;
7/
Trigger created.
这些是员工表中的所有记录。
SQL> select * from testemp2;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
当前testdelvalues值为空。
SQL> select * from testdelvalues;
no rows selected
现在,我从表中删除的记录,这将触发一个删除触发器的值存储到testdelvalues,存储其被删除的员工EMPNO和名称。
SQL> delete from testemp2 where empno=7369;
1 row deleted.
SQL> commit;
Commit complete.
记录的细节,使用删除触发器插入。
SQL> select * from testdelvalues;
EMPNO EMPNAME
---------- ----------
7369 SMITH
- 1. SQLite和删除命令
- 2. Fileinfo删除命令
- 3. SQL删除命令
- 4. SQL删除命令?
- 5. 删除除了
- 6. 删除删除了混帐
- 7. 了解删除和删除greenDao中的关系
- 8. 的MikroTik API删除命令
- 9. 从DiscordBot删除命令CommandService
- 10. 删除命令提示符
- 11. 使用命令删除
- 12. Bash正在删除命令?
- 13. 撤消svn删除命令
- 14. DB2级联删除命令?
- 15. C++删除命令行
- 16. 在vb.net中删除命令
- 17. Bash命令 - 删除目录
- 18. C++了解它并删除
- 19. 了解删除边缘
- 20. SQL:删除,除了
- 21. 我的TableAdapter的更新和删除命令发生了什么?
- 22. 删除了TortoiseSVN
- 23. PhpMyAdmin没有删除数据库选项+删除SQL命令
- 24. 取消删除在bash中删除的命令
- 25. UNLOAD命令是否从红移中删除或删除数据?
- 26. Hibernate中的级联删除:从表中删除什么命令?
- 27. 找到了sudo pm2命令节点pm2已经被删除了
- 28. 删除已删除的Facebook api令牌
- 29. NSTokenField和删除令牌
- 30. ProcessBuilder删除和重命名
DELETE语句在事务边界的上下文中运行,该事务边界可以被提交或回滚。 DRL语句是DDL而不是DML,不能通过回滚来撤消。 – crowne
'DROP'是DDL语句,DDL语句从不触发DML触发器 –