select seq_".$num.".nextval ........--序列名也是动态的?

解决方案 »

  1.   

    我有动态创建序列成功
    当我没创建触发器时,我插入序列名.nextval到表里是可以的
    但我为了不用每次添加新记录时都要插入序列号我就创建触发器
      

  2.   

    代码如下:
    $query="CREATE TABLE ".$table_name." (fd_wd_id number primary key ,
    fd_wd_vouid number(11),
    fd_wd_wdlogid number(11),  
    fd_wd_start number(11),     
    fd_wd_end number(11) ,
    fd_wd_number number(11),
    fd_wd_gyid number(11)  , 
    fd_wd_state number(11),
    fd_wd_date date  

    )" ; 
    $db->query($query); 

    //创建序列号
    $query=  "create sequence seq_".$num."
    minvalue 1
    maxvalue 1.0E28
     start with 1
    increment by 1
    cache 20
    ";
    $db->query($query);

    //创建触发器
    $query=  "create or replace trigger tig_".$num."  
    before insert on ".$table_name." 
    for each row
    begin 
    select seq_".$num.".nextval into :new.fd_wd_id from dual; 
    end;
    ";
    $db->query($query);