我正在學習使用Oracle 12.1。如何在定義列的同一行中定義外鍵?
下面的外鍵定義有什麼問題?
set echo on
drop table city;
drop table emp;
create table city (
id number primary key,
name varchar2(20)
);
create table emp (
id number,
cityid number foreign key references city(id)
);
當我執行它時,出現以下錯誤。
$ sqlplus/as sysdba @foo.sql
...
...
SQL>
SQL> create table city (
2 id number primary key,
3 name varchar2(20)
4 );
Table created.
SQL>
SQL> create table emp (
2 id number,
3 cityid number foreign key references city(id)
4 );
cityid number foreign key references city(id)
*
ERROR at line 3:
ORA-00907: missing right parenthesis
我認爲在定義列的同一行中定義列的外鍵約束是有效的。
我正在使用在http://www.w3schools.com/sql/sql_foreignkey.asp> CREATE TABLE> SQL Server/Oracle/MS Access上的SQL FOREIGN KEY約束下定義的語法。
這個語法在Oracle 12.1中真的無效嗎?
只使用'cityid數字引用city(id)'或'cityid CONSTRAINT some_name REFERENCES city(id) – krokodilko