服务器 频道

PL/SQL学习笔记之八

  MERGE语句

  提供了对表根据条件进行插入或者更新的能力。
  如果行存在则执行UPDATE,如果不存在则执行INSERT。

  避免了单独的修改。
  提高了性能,更便于使用。
  对于数据库应用很有益。

  语法:别名AL
  MERGE INTO table_name(目的表) table_alias USING (table/view/sub_query)//数据来源(可以用子查询)  alias(别名)
  on(连接条件)
  WHEN MATCHED THEN UPDATE SET(关键字) (修改目的表)
  目的表AL.col1=原表AL.col_var1
  目的表AL.col2=原表AL.col2_var2
  WHEN NOT MATCHEN THEN(关键字)
  INSERT (目的表AL.COL_LIST)
  VALUES(原表AL.COL_VARS);(插入原表)

  create table newtable_name(新表) as select * from oldtable_name(原表) where 1=0;
  将原表中的结构复制到新表中,但具体的数据项不进行复制。

  事务(transaction):由被逻辑组织在一起的多个DML语句的构成。
  COMMIT:提交。
  ROLLBACK:回滚。
  SAVEPOINT:存储点,只在事务执行过程中有效,事务结束即被释放。

  事务的组成:
  一组相同改变特性的DML语句;
  一个DDL:数据定义语句;
  一个DCL:权限控制语句;

  建立存储点:
  例:SAVEPOINT A;
    .
  .
  .
  ROLLBACK TO A;

  事务的开始:
  开始于第一个DML SQL语句执行时开始

  结束的时候是在:
  *、一个COMMIT或ROLLBACK被执行的时候。
  *、一个DDL或DCL语句被执行(自动提交)注意*&*!(隐式)
  *、用户退出SQLPLUS(隐式) 
  *、系统崩溃(隐式)

  语句级回滚:

  ORACLE 服务器执行隐式的存储点。

0
相关文章