oracle表创建

joh*_*ohn -5 sql oracle oracle10g oracle11g

以下代码给了我ERROR at line 3: ORA-00907: missing right parenthesis:

CREATE TABLE ORGANISATION(
    ORG_REF VARCHAR(5),
    POSTCODE VARCHAR(10) FOREIGN KEY,
    TELEPHONE NUMBER FOREIGN KEY, 
    DESCRIPTION VARCHAR(30),
 AGENCY_ID VARCHAR(5));
Run Code Online (Sandbox Code Playgroud)

第3行代码非常烦人,因为查看该行没有拼写错误,一切都在正确的位置.

Mar*_*arc 5

这不是你定义外键的方式.外键必须知道如何找到它的伙伴.

请阅读:http://www.cotechonthenet.com/oracle/foreign_keys/foreign_keys.php

外键定义如下:

CREATE TABLE ORGANISATION(
  ORG_REF VARCHAR(5),
  POSTCODE VARCHAR(10), --THIS WILL BE FOREIGN KEY
  TELEPHONE NUMBER,     --2nd FOREIGN KEY
  DESCRIPTION VARCHAR(30),
  AGENCY_ID VARCHAR(5),
     FOREIGN KEY FK_POSTCODE
     REFERENCES other_table (post_code),
     FOREIGN KEY FK_TELEPHONE
     REFERENCES other_table2 (phone)
);
Run Code Online (Sandbox Code Playgroud)

更新:

  • @john,你会阅读文档,尝试从中学习,然后做一些与我上面写的几乎相同的东西.然后,如果它有效,您一定要将此答案标记为正确的解决方案. (5认同)
  • @john,你没有努力自己理解这一点,这是人们为什么愿意在Stackoverflow上帮助你的基本原则.我正在更新我的答案,并附上一个额外的阅读建议,以回答您的原始问题. (4认同)