问题描述:给表创建外键报错ORA-00906,具体过程如下:
数据库:oracle 11.2.0.4 64位
scott@ORCL 2022-10-14 10:10:40> select index_name,table_name,tablespace_name,status,last_analyzed from user_indexes;
INDEX_NAME TABLE_NAME TABLESPACE_NAME STATUS LAST_ANALYZED
--------------- --------------- --------------- -------- -------------------
PK_EMP EMP USERS VALID 2022-10-11 22:00:04
PK_DEPT DEPT USERS VALID 2022-10-11 22:00:04
scott@ORCL 2022-10-14 10:10:48> select * from app1_emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10
14 rows selected.
scott@ORCL 2022-10-14 10:17:45> alter table app2_dept add constraint PK_Test_ID primary key(deptno);
scott@ORCL 2022-10-14 10:51:22> alter table app1_emp add constraint fk_app1_deptno foreign key references app2_dept(deptno);
alter table app1_emp add constraint fk_app1_deptno foreign key references app2_dept(deptno)
*
ERROR at line 1:
ORA-00906: missing left parenthesis
scott@ORCL 2022-10-14 10:53:27> alter table app1_emp add constraint fk_app1_deptno foreign key (deptno) references app2_dept(deptno);
Table altered.
总结:创建语句不正确导致,修改后成功创建外键.