我用powerdesigner 建物理模型,然后生成sql脚本。当放到PL/SQL 中执行时出错:sql>alter table ACCEPT_DOC
   2  add foreign key FK_ACCEPT_D_SIGN (PERSONNEL_ID)
   3       references PERSONNEL
   4       on update restrict
   5       on delete restrict;ORA-00906:缺少左括号
    alter table ACCEPT_DOC
      add foreign key FK_ACCEPT_D_SIGN (PERSONNEL_ID)
           references PERSONNEL
           on update restrict
           on delete restrict;请各位大侠帮忙看下。

解决方案 »

  1.   

    alter   table   ACCEPT_DOC 
                add  constraint FK_ACCEPT_D_SIGN   foreign   key   (PERSONNEL_ID) 
                          references   PERSONNEL 
                          on   update   restrict 
                          on   delete   restrict; 
      

  2.   

    alter  table ACCEPT_DOC   
         add constraint FK_ACCEPT_D_SIGN  foreign  key  (PERSONNEL_ID)   
            references  PERSONNEL   
            on   update  restrict   
            on   delete  restrict;报错:非法的alter table 选项
      

  3.   

    alter       table       ACCEPT_DOC   
                            add     constraint   FK_ACCEPT_D_SIGN       foreign       key       (PERSONNEL_ID)   
                                                references       PERSONNEL(PERSONNEL_ID)  
                                                on       update       restrict   
                                                on       delete       restrict;
      

  4.   

    我试了下,还是报错。“非法的alter table 选项”。不知道为什么。
      

  5.   

    去掉
       on   update      restrict 
      on    delete      restrict;试一下
      

  6.   

    试过了,还是不行。问题倒底出在哪了哈?  我从powerdesigner中导出的时候都没有报一个错。
      

  7.   

    try it ..
    ALTER TABLE ACCEPT_DOC 
    ADD (CONSTRAINT FK_ACCEPT_D_SIGN) 
    FOREIGN KEY (PERSONNEL_ID) 
    REFERENCES PERSONNEL(PERSONNEL_ID)
    on update restrict 
    on delete restrict;是不是在PowerDesign导出脚本的时候没有选择导出为Oracle类型的呢?
      

  8.   

    回 mantisXF:
    运行也出错:
    ALTER TABLE ACCEPT_DOC 
    ADD (CONSTRAINT FK_ACCEPT_D_SIGN) 
    FOREIGN KEY (PERSONNEL_ID) 
    REFERENCES PERSONNEL(PERSONNEL_ID)
    on update restrict 
    on delete restrict;无效的标识符。
      

  9.   


    ALTER   TABLE   ACCEPT_DOC   
    ADD   CONSTRAINT   FK_ACCEPT_D_SIGN   
    FOREIGN   KEY   (PERSONNEL_ID)   
    REFERENCES   PERSONNEL(PERSONNEL_ID) 
    on   update   restrict   
    on   delete   restrict; FYI:http://www.techonthenet.com/oracle/foreign_keys/foreign_keys.php
      

  10.   

    ALTER   TABLE   ACCEPT_DOC   
    ADD   CONSTRAINT   FK_ACCEPT_D_SIGN   
    FOREIGN   KEY   (PERSONNEL_ID)   
    REFERENCES   PERSONNEL(PERSONNEL_ID) 
    on   update   restrict   
    on   delete   restrict;无效的关键字
      

  11.   

    这样应该行了吧 ...
    ALTER   TABLE   ACCEPT_DOC   
    ADD   CONSTRAINT   FK_ACCEPT_D_SIGN   
    FOREIGN   KEY   (PERSONNEL_ID)   
    REFERENCES   PERSONNEL(PERSONNEL_ID);
      

  12.   

    我晕死了,我说怎么没有在Oracle的语法里看到过
    on       update       restrict       
    on       delete       restrict;
    的东西了!那个是mysql的语法,我觉得你肯定是PowerDesign导出脚本时没有选择数据库类型 ...FYI:http://blog.csdn.net/hongsejiaozhu/archive/2007/10/08/1815356.aspx
      

  13.   

    偶3楼的答案再按偶5楼的方法去掉
    on               update               restrict               
    on               delete               restrict; 为什么LZ说不对呢?
    得出的答案和11楼的枫叶兄一样啊,真是狂汗中...alter table  ACCEPT_DOC       
      add   constraint  FK_ACCEPT_D_SIGN  foreign  key   (PERSONNEL_ID)
    references  PERSONNEL(PERSONNEL_ID) ;   
      

  14.   

    这还不简单,一眼就看出来了,alter table ACCEPT_DOC   
      add constraint FK_ACCEPT_D_SIGN foreign key (PERSONNEL_ID)
    references PERSONNEL(ID) ; 关联的是表PERSONNEL的ID吧,而不是PERSONNEL_ID,无效的标识指的就是PERSONNEL.PERSONNEL_ID,因为压根不存在啊,应该是PERSONNEL.ID