忘记说了,是oracle的数据库,应该可以在creat的前边加个判断吧,oracle可以吗?

解决方案 »

  1.   

    create or replace table ...
      

  2.   

    Sorry,好像不支持这样的语法。
      

  3.   

    declare 
    counter NUMBER; 
    begin
    counter := 0;
    select count(*) into counter from user_tables where table_name = '123';
    if  counter = 1 then
     execute immediate 'drop table 123';
     dbms_output.put_line('table droped');
    end if;execute immediate 'create table 123 (CAT VARCHAR(5),primary key (CAT))';
    end;
      

  4.   

    drop table 123;
    create table 123 ...;脚本都是这样写的,楼主是受sql server的感染吧 :)
      

  5.   

    按cenlmmx(学海无涯苦作舟)的方法,可以先创建一个存储过程,负责删除指定的表。如:
    create or replace procedure droptable( tablename varchar2)
    as
      v_str varchar2(200);
      v_findtable number(10);
    begin
      select count(*) into v_findtable from user_tables where upper(tablename)=table_name;
      if v_findtable=1 then
        v_str := 'drop table '||tablename;
        EXECUTE IMMEDIATE v_str;
      end if;
    end;
    /
    在脚本中只要在每个创建表之前加上一行exec droptable(TABLENAME)就可以了
      

  6.   

    create or replace table ...