为什么DDL的语句会立即执行
时间: 2023-06-05 17:04:35 浏览: 65
DDL语句(数据定义语言)通常是用来创建、更改或删除数据库对象的语句,例如创建表、修改表结构、删除表等。与DML(数据操作语言)语句不同,DDL语句会立即生效,并且会立即提交事务,不会被回滚。因此,当执行DDL语句时,要格外注意,以免造成不可逆的影响。
相关问题
clickhouse执行DDL时加sync有什么影响
在ClickHouse中,当执行DDL语句时,如果使用SYNC关键字,则会在DDL操作完成后立即将元数据写入到磁盘中,这可以确保DDL操作的持久性和一致性。如果不使用SYNC关键字,则DDL操作完成后元数据将被缓存在内存中,当系统崩溃或重启时,可能会丢失最近的DDL操作。因此,使用SYNC关键字可以提高系统的可靠性和稳定性,但也会增加执行DDL操作的时间。
下面哪些语句会隐式提交事务?UPDATETRUNCATESELECTCREATE
在 Oracle 数据库中,下面的语句会隐式提交事务:
1. DDL 语句(如 CREATE、DROP、ALTER)会自动提交当前事务,因为 DDL 语句执行时需要对表结构进行修改,需要立即生效。
2. TRUNCATE 语句会自动提交当前事务,因为 TRUNCATE 会直接删除表中所有数据,需要立即生效。
因此,选项 TRUNCATE 和 CREATE 会隐式提交事务。而 UPDATE、SELECT 不会隐式提交事务。需要注意的是,如果在使用 UPDATE、SELECT 时使用了显式事务控制语句(如 BEGIN、COMMIT、ROLLBACK),则需要手动提交或回滚事务。