oracle 删除未命名外键问题

建表:----SQL>createtableclass(2cnonumber(2)primarykey,3cnamevarchar2(10)notnull);Tablec... 建表:
----

SQL> create table class(
2 cno number(2) primary key,
3 cname varchar2(10) not null);

Table created.

1 create table student(
2 sno number(5) primary key,
3 sname varchar2(20) not null,
4* cno number(2) references class(cno))
SQL> /

Table created.

-------
删除外键:
SQL> alter table student
2 drop primary key(cno);
drop primary key(cno)
*
ERROR at line 2:
ORA-01735: invalid ALTER TABLE option
!!!!!!!!!!!!!!!!出错了0 0!真么回事呢

注:(如果给外键起个名却能删除,其他约束不起名也能栓出)
删除约束不是有两种方法:
1、删除指定内容的约束
alter table player drop unique(sname);
2、删除指定名称的约束
alter table player drop constraint p_ck;
======
用外键起的名删可以删除,
我想问的用指定内容为什么不好用呢?
展开
 我来答
wangzhiqing999
推荐于2016-02-12 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3333万
展开全部

如果你 SQL  里面, 没有给 外键起名字,  那么数据库会 自动使用一个   算法, 来产生一个 唯一的名字

下面这个 SQL  用于在 Oracle 里面, 查询 所有的   外键信息。

你可以  通过  子表名 , 去查询, 那个 自动生成的 外键名字, 是什么。

然后就可以删除了。

SELECT

  USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,

  USER_CONS_COLUMNS.TABLE_NAME AS 子表名,

  USER_CONS_COLUMNS.COLUMN_NAME AS 子表列名,

  USER_CONS_COLUMNS.POSITION AS 位置,

  USER_INDEXES.TABLE_NAME AS 主表名,

  USER_IND_COLUMNS.COLUMN_NAME AS 主表列名

FROM

  USER_CONSTRAINTS

    JOIN USER_CONS_COLUMNS

    ON (USER_CONSTRAINTS.CONSTRAINT_NAME

        = USER_CONS_COLUMNS.CONSTRAINT_NAME)

    JOIN USER_INDEXES

    ON (USER_CONSTRAINTS.R_CONSTRAINT_NAME

        = USER_INDEXES.INDEX_NAME)

    JOIN USER_IND_COLUMNS

    ON (USER_INDEXES.INDEX_NAME = USER_IND_COLUMNS.INDEX_NAME)

WHERE

  CONSTRAINT_TYPE = 'R'; 

至于如何 删除 外键 ,  语法是

ALTER TABLE   表名   DROP CONSTRAINT   外键约束名字;

至于 

用指定内容为什么不好用呢?

这个因为 Oracle 的 语法不支持你这么做

因此你没法这么干.

参考资料: ALTER TABLE test_subDROP CONSTRAINT main_id_cons;

spiderrobot
2011-10-17 · TA获得超过871个赞
知道小有建树答主
回答量:930
采纳率:0%
帮助的人:573万
展开全部
两句话:
1. 所有约束都是有名字的,不存在未命名的外键,创建外键时没有指定名称的话也会有个系统给起的名字表示这个外键的,可以通过数据字典查到这个名字
2. 删除外键你上边第一种方法是不存在的,只能用第2种。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式