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();
此命令无效。请帮忙
答案 0 :(得分:3)
需要使用constraint < constraint_name >
明确指定约束,如下所示。
我稍微询问是否需要在c#中创建一个表,如果你不止一次这样做的话。为什么它不在数据库中?
on delete no action
是default,实际上并不需要指定。
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) )
答案 1 :(得分: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) )
删除时没有删除任何操作,因为它会导致错误,因为它是Oracle中的默认级联
答案 2 :(得分:0)
正如RaphaëlAlthaus指出的,有一个NO ACTION选项,实际上是默认选项,因此从表定义中省略ON DELETE将激活此行为。 Oracle中没有“ON DELETE NO ACTION”。 ON DELETE的选项是SET 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)
)