TRUNCATE 是 DML 语句吗?

问题描述 投票:0回答:3

我们可以分类/说 TRUNCATE 属于 DML 语句吗?

此处检查 PostgreSQL TRUNCATE 兼容性。

注意:TRUNCATE 是 SQL 标准 ANSI SQL 2008 - F200 的一部分

database postgresql sql
3个回答
4
投票

PostgreSQL

我会说这是 PostgreSQL 中的 DML 语句:PostgreSQL 有一个 TRUNCATE 触发器,但 PostgreSQL 没有 DDL 触发器。所以它不可能是DDL语句。

它在其操作的每个表上获取 ACCESS EXCLUSIVE 锁,它不是 MVCC 安全的,但它是事务安全的,您可以进行回滚。

触发触发器的能力 TRUNCATE 是 PostgreSQL 的扩展 SQL 标准。


4
投票

由于 TRUNCATE 操作数据并且不更改任何定义,我清楚地将其视为 DML 语句。


1
投票

SQL TRUNCATE 是一种 DML。它影响表中的数据,但不影响表的结构(定义)。它只是清空表,保持结构(定义)完好无损。因此,它“操纵”表中的数据——“数据操纵语言”。

基本上有 3 个 SQL DDL:CREATE、DROP 和 ALTER。 DDL 影响对象/结构(定义)。 CREAT 创建一个对象(表)。 DROP 删除对象(表),ALTER 修改对象的结构(定义)。 TRUNCATE 不执行这些操作,因此它不是 DDL。

© www.soinside.com 2019 - 2024. All rights reserved.