Oracle 創建外鍵表


依次創建A、B、C三張表,C的ID字段為非空主鍵,
並被B表的ID字段作為外鍵關聯,
而A的ID字段關聯B的ID字段,
依賴關系為:A依賴B依賴C,
故創建先后為C—>B—>A
創建語句如下

#創建表C
create table C(
    ID VARCHAR2(50) not null primary key,
    C1 VARCHAR2(50),
    C2 VARCHAR2(50)
);

#創建表B
#這種創建方法
create table B(
    ID VARCHAR2(50) not null primary key,
    B1 VARCHAR2(50),
    B2 VARCHAR2(50),    
    CONSTRAINT FK_CID
    FOREIGN KEY (ID)
    REFERENCES C (ID)
);

    #CONSTRAINT FK_CID:外鍵名為FK_CID名字可以任意起,但最好有實際意義
    #FOREIGN KEY (ID):指定本表的那個字段作為外鍵
    #:REFERENCES C (ID):參照C表的ID字段作為外鍵關聯


#等同於:
create table B(
    ID VARCHAR2(50) not null REFERENCES C(ID) primary key,
    B1 VARCHAR2(50),
    B2 VARCHAR2(50) not null 
);

#創建表A
create table A(
    ID VARCHAR2(50) not null primary key,
    A1 VARCHAR2(50),
    A2 VARCHAR2(50),    
    CONSTRAINT FK_BID
    FOREIGN KEY (ID)
    REFERENCES B (ID)
);

 

創建(插入)大量測試數據表

創建:

create table C1 as
select rownum as id,
to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,
trunc(dbms_random.value(0, 100)) as random_id,
dbms_random.string('x', 20) random_string
from dual
connect by level <= 1000;

 

插入:
insert into "C1"
(ID, INC_DATETIME,RANDOM_ID,RANDOM_STRING)
select rownum as id,
to_char(sysdate + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,
trunc(dbms_random.value(0, 100)) as random_id,
dbms_random.string('x', 20) random_string
from dual
connect by level <= 1000;

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM