2010-06-28 96 views
2

喜歡的東西:如何爲Oracle創建順序SQL創建腳本?

create table Employee(
ID int primary key, 
Name nvarchar(200) 
IDArea int foreign key references Area(ID) 
); 

go 

create table Area(
ID int primary key, 
Name nvarchar(200) 
); 

難道這樣的事情在Oracle中存在嗎?

回答

2

是的,就這麼走了「GO」的關鍵詞,並把語句文件:

create table Area(
ID int primary key, 
Name nvarchar2(200) 
); 

create table Employee(
ID int primary key, 
Name nvarchar2(200), 
IDArea int references Area(ID) 
); 

您必須創建一個引用它的外鍵前區主鍵,所以我身邊換這些。在Oracle中,外鍵語法也略有不同。

+0

此代碼將工作?我認爲Oracle和Microsoft SQL的外鍵是不同的。 – 2010-06-28 15:06:43

+0

語法幾乎是好的 - 我剛剛在我的答案中更正了Oracle的FK語法。您還需要在父/子順序中創建約束 - 在Area表存在之前,您無法引用區域(ID)。 – 2010-06-28 15:20:42

+0

哦,我將nvarchar更改爲nvarchar2,以使其在Oracle中工作。但VARCHAR2(不含N)是Oracle中比較常用的字符串數據類型。 – 2010-06-28 15:26:23

1

,必須先創建主表,忘記nvarchar的數據類型,並最終腳本是:

create table Area( 
ID number primary key, 
Name varchar2(200) 
); 

create table Employee( 
ID number primary key, 
Name varchar2(200) , 
IDArea number, constraint fk_idarea foreign key (idarea) references Area(ID) 
);