【发布时间】:2016-05-19 15:36:32
【问题描述】:
我正在搜索为什么将 TRUNCATE 放在 DDL 而不是 DML 中的主题,我在这里找到了以下答案 Why is truncate DDL?
在这个答案中,我找到了下面给出的一句话
“TRUNCATE 不运行 ON DELETE 触发器这一事实也使它与正常的 DML 操作不同”
这与 MYSQL Reference Manual 冲突,它说
“如果 FOREIGN KEY 约束指定 DELETE CASCADE,则子(引用)表中的行将被删除,并且被截断的表变为空。”
我处于迷茫状态。请详细说明这个问题。
谢谢
【问题讨论】:
-
虽然大多数概念可能很常见,但该链接属于关于 Oracle 的问题。
-
我认为大多数关于 SQL 的概念对于 MYSQL 和 Oracle SQL 来说都是通用的
-
@geeksal - 触发器是数据库引擎之间可能存在巨大差异的区域。
-
@Damien_The_Unbeliever 如果您可以从一些可靠的来源引用这种处理或不处理触发器的行为是基于数据库引擎的类型,那么我肯定会同意您的看法。给定的文档链接说的是关于 InnoDB,但是它没有提到关于 MISAM 的任何事情或关于数据库引擎问题的任何澄清。如果您得到解决方案,请发布答案。
-
我更多地是指您认为 Oracle 和 MySQL 相似的假设。
标签: mysql triggers ddl truncate