zoukankan      html  css  js  c++  java
  • oracle 查询判断语句

    1.查询表是否存在,如果不存在,就添加

    select count(*)
        into v_count
        from user_all_tables
       where table_name = 'A';
      if v_count = 0 then
        execute immediate 'create table A(ID NUMBER not null';
      end If;

    2.查询表的主键是否存在,不存在就添加主键

    select count(*)
        into v_count
        from user_cons_columns a
       where a.constraint_name = 'PK_A'
         and a.table_name = 'A;
      if v_count = 0 then
        execute immediate 'alter table A
                            add constraint PK_A primary key (ID)
                            using index
                            tablespace DAAN_DATA
                            pctfree 10
                            initrans 2
                            maxtrans 255
                            storage
                            (
                              initial 64K
                              minextents 1
                              maxextents unlimited
                            )';
      end if;

    3.查询表的序列是否存在,不存在的话,添加

    select count(*)
        into v_count
        from user_sequences
       where sequence_name = 'SEQ_A_ID';
      if v_count = 0 then
        execute immediate 'create sequence SEQ_A_ID
                minvalue 1 maxvalue 9999999999999999 start with 61 increment by 1 cache 20';
      end if;

    4.判断表是否存在该字段,不存在的话,就添加

    select COUNT(*)
        into v_count
        from user_tab_columns
       where table_name = 'A'
         and column_name = 'CREATE_TIME';
      if v_count = 0 then
        execute immediate 'alter table A add(CREATE_TIME DATE default SYSDATE not null)';
      end if;

    5.判断表是否存在该条数据,如果不存在,就添加,存在,就修改

    merge into A a
      using (select count(*) num from A where id = 1) c
      on (c.num <> 0)

      WHEN MATCHED THEN

      update set a.id=2 where a.id=1
      WHEN not MATCHED THEN
        insert
          (id)
        values
          (1);
      commit;

  • 相关阅读:
    Spring AOP里的静态代理和动态代理,你真的了解嘛?
    redis的三种启动方式
    Linux MySQL分库分表之Mycat
    Linux 之Mycat搭建报错 java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException
    Linux MySQL Proxy 读写分离
    Linux MySQL集群搭建之主从复制
    Linux 虚拟机详细安装MySQL
    MySQL 性能优化细节
    MySQL 性能优化之慢查询
    MySQL事务处理
  • 原文地址:https://www.cnblogs.com/tangjianglan/p/2693606.html
Copyright © 2011-2022 走看看