2012-03-08 78 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