2012-03-08 76 views
-2
command.CommandText = "CREATE TABLE daily_prostock (product_id varchar2(30),daily_prounit number(30) not null,day varchar2(30),FOREIGN KEY (product_id) REFERENCES product_description (product_id) ON DELETE NO ACTION )"; 
command.ExecuteNonQuery(); 

該命令不起作用。請幫助創建表查詢錯誤

+5

「不工作」是不是具體參見[問] – Ben 2012-03-08 18:00:05

+0

請提供更多的信息。什麼版本的Oracle。什麼不起作用?有錯誤嗎?請發佈更完整的示例。 – cadrell0 2012-03-08 18:02:54

+0

我喜歡這些猜謎遊戲... – 2012-03-09 06:20:32

回答

3

約束需要明確指定constraint <constraint_name>如下。

我有點懷疑是否需要在c#中創建表格,如果你不止一次地這樣做。爲什麼它不在數據庫中?

on delete no actiondefault,實際上並不需要指定。

CREATE TABLE daily_prostock (
    product_id varchar2(30) 
    , daily_prounit number(30) not null 
    , day varchar2(30) 
    , constraint daily_prostock_fk 
     FOREIGN KEY (product_id) 
     REFERENCES product_description (product_id)) 
2
CREATE TABLE daily_prostock (
product_id varchar2(30), 
daily_prounit number(30) not null, 
day varchar2(30), 
constraint fkproduct 
FOREIGN KEY (product_id) REFERENCES product_description (product_id)) 

上刪除任何行動已被刪除,因爲它會導致錯誤,因爲它是在甲骨文

0

拉斐爾Althaus先生指出了默認的級聯,有不採取行動的選項,這是實際上是默認值,所以省略表格定義中的ON DELETE將會促使這種行爲。 Oracle中沒有「ON DELETE NO ACTION」。有關選項刪除設置爲NULL或 CASCADE

CREATE TABLE daily_prostock (
    product_id varchar2(30), 
    daily_prounit number(30) not null, 
    day varchar2(30), 
    FOREIGN KEY (product_id) 
    REFERENCES product_description (product_id) 
) 
+0

錯了。它存在(> 9i),但不能在CREATE TABLE語句中使用。 http://www.dba-oracle.com/bk_on_delete_restrict_on_delete_no_action_tips.htm – 2012-03-08 18:13:16

+0

謝謝。我會修改答案。 – 2012-03-08 18:56:42