创建表是原子操作吗

解决方案 »

  1.   

    不算.虽然ddl隐含commit;
    但是不像事物一样满足acid
      

  2.   

    一个DDL操作从原子性上说:要么全部成功,要么全部失败。最后不会存在一个DDL的中间状态。并且隐含提交与回滚。所以个人认为应该算。
      

  3.   

    ddl是的 没有介于成功跟失败的状态 
      

  4.   

    原子性:就是要么全部成功,要么全部失败
    create table(..)
    也只有两种情况 要么表创建成功 要么失败...没有其他情况了吧
      

  5.   

    这个,,,,
    拿MySQL来说,如果创建一个表,有三个文件跟它对应,如果在创建的过程中,某两个文件创建出来了,第三个文件创建的时候,还没创建完,就断电了,
    单独的DDL,难以断定是否是原子性的。个人理解,仅从参考。还是跟具体数据库的实现机制有关系。
      

  6.   

    一个DDL操作从原子性上说:要么全部成功,要么全部失败。最后不会存在一个DDL的中间状态。并且隐含提交与回滚。所以算。
      

  7.   

    显然没建成功。
    我举例只想说明,不同的数据库,DDL不一定是原子操作。
    如果是基于事务的DDL,则肯定是原子的,因为它能够将其恢复为一致状态。而不会让其处于中间状态。