为什么不能从表中删除此外键?

凯特

我正在尝试从表帐户中删除一行,但是其中一列是另一个表的外键。我尝试运行:ALTER TABLE depositor DROP FOREIGN KEY account_number;但是它吐出一个错误,说:

ORA-00905: missing keyword

我缺少什么关键字?

我不知道这是否有帮助,但是创建表存放者的原始语句是:

create table depositor
   (customer_name   varchar(15) not null,
    account_number  varchar(15) not null,
    primary key(customer_name, account_number),
    foreign key(account_number) references account(account_number),
    foreign key(customer_name) references customer(customer_name));


  create table customer
       (customer_name   varchar(15) not null,
        customer_street     varchar(12) not null,
        customer_city   varchar(15) not null,
        primary key(customer_name));

create table account
   (account_number  varchar(15) not null,
    branch_name     varchar(15) not null,
    balance         number not null,
    primary key(account_number));

实际的表已将它们插入其中:

insert into customer values ('Jones', 'Main', 'Harrison');
insert into customer values ('Smith', 'Main', 'Rye');
insert into customer values ('Hayes', 'Main', 'Harrison');
insert into customer values ('Curry', 'North', 'Rye');
insert into customer values ('Lindsay', 'Park', 'Pittsfield');
insert into customer values ('Turner', 'Putnam', 'Stamford');
insert into customer values ('Williams', 'Nassau', 'Princeton');
insert into customer values ('Adams', 'Spring', 'Pittsfield');
insert into customer values ('Johnson', 'Alma', 'Palo Alto');
insert into customer values ('Glenn', 'Sand Hill', 'Woodside');
insert into customer values ('Brooks', 'Senator', 'Brooklyn');
insert into customer values ('Green', 'Walnut', 'Stamford');
insert into customer values ('Jackson', 'University', 'Salt Lake');
insert into customer values ('Majeris', 'First', 'Rye');
insert into customer values ('McBride', 'Safety', 'Rye');
insert into customer values ('Jones', 'Second', 'Bennington');

insert into account values ('A-101', 'Downtown', 500);
insert into account values ('A-215', 'Mianus', 1000);
insert into account values ('A-102', 'Perryridge', 400);
insert into account values ('A-305', 'Round Hill', 350);
insert into account values ('A-201', 'Perryridge', 900);
insert into account values ('A-222', 'Redwood', 100000);
insert into account values ('A-217', 'Brighton', 7500);
insert into account values ('A-333', 'Central', 8500);
insert into account values ('A-444', 'North Town', 6250);

insert into depositor values ('Johnson','A-101');
insert into depositor values ('Smith', 'A-215');
insert into depositor values ('Hayes', 'A-102');
insert into depositor values ('Hayes', 'A-101');
insert into depositor values ('Turner', 'A-305');
insert into depositor values ('Johnson','A-201');
insert into depositor values ('Jones', 'A-217');
insert into depositor values ('Lindsay', 'A-222');
insert into depositor values ('Majeris', 'A-333');
insert into depositor values ('Smith', 'A-444');
insert into depositor values ('Johnson','A-444');
西罗·佩德里尼(Ciro Pedrini)

这是因为创建表时您没有命名CONSTRAINT,所以它是自动生成的。

做一个:

SHOW CREATE TABLE depositor;

它将显示如下内容:

CREATE TABLE `depositor` (
  `customer_name` varchar(15) NOT NULL,
  `account_number` varchar(15) NOT NULL,
  PRIMARY KEY (`customer_name`,`account_number`),
  KEY `account_number` (`account_number`),
  CONSTRAINT `depositor_ibfk_1` FOREIGN KEY (`account_number`) REFERENCES `account` (`account_number`),
  CONSTRAINT `depositor_ibfk_2` FOREIGN KEY (`customer_name`) REFERENCES `customer` (`customer_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

其中depositor_ibfk_1是可以使用命令删除的约束名称:

ALTER TABLE depositor DROP FOREIGN KEY depositor_ibfk_1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么不能从字符串中删除此字符?

来自分类Dev

为什么我不能从该表中删除记录?

来自分类Dev

为什么我不能从开发工具控制台删除此cookie?

来自分类Dev

为什么我不能从javascript中删除表中的一行?

来自分类Dev

为什么不能从元素中删除样式?

来自分类Dev

为什么我不能从列表中删除所需的元素

来自分类Dev

为什么不能在Mercurial(hg)中删除此远程书签?

来自分类Dev

为什么不能删除此可配置属性?

来自分类Dev

为什么我不能删除此文件?

来自分类Dev

为什么不能删除此文件夹(VBA)?

来自分类Dev

为什么我不能删除此dkms模块?

来自分类Dev

为什么我不能删除此文件?

来自分类Dev

为什么我不能从 PHP 中的字符串中删除 HTML 标签

来自分类Dev

为什么我不能从JavaCard中删除未使用的软件包?

来自分类Dev

为什么我不能从Kadane算法的haskell实现中删除Ord Typeclass?

来自分类Dev

为什么这不能从<select>元素中删除所有项目?

来自分类Dev

为什么inpaint方法不能从IC图像中删除文本?

来自分类Dev

取消读取访问权限后,为什么不能从文件中删除带有icacls的组?

来自分类Dev

为什么这不能从<select>元素中删除所有项目?

来自分类Dev

为什么我不能从我的 sqlite3 数据库中删除?

来自分类Dev

为什么未删除此MSDN示例中的指针?

来自分类Dev

为什么我不能删除表中的行

来自分类Dev

为什么不能从Git的工作目录中丢弃文件?

来自分类Dev

为什么我不能从远程分支中拉出?

来自分类Dev

为什么我不能从异步代码中捕获异常?

来自分类Dev

我为什么不能从情节提要中创建IBAction

来自分类Dev

为什么不能从字典中追加此值?

来自分类Dev

为什么Windows 7不能从睡眠中唤醒?

来自分类Dev

为什么我不能从XPath查询中检索URL?

Related 相关文章

  1. 1

    为什么不能从字符串中删除此字符?

  2. 2

    为什么我不能从该表中删除记录?

  3. 3

    为什么我不能从开发工具控制台删除此cookie?

  4. 4

    为什么我不能从javascript中删除表中的一行?

  5. 5

    为什么不能从元素中删除样式?

  6. 6

    为什么我不能从列表中删除所需的元素

  7. 7

    为什么不能在Mercurial(hg)中删除此远程书签?

  8. 8

    为什么不能删除此可配置属性?

  9. 9

    为什么我不能删除此文件?

  10. 10

    为什么不能删除此文件夹(VBA)?

  11. 11

    为什么我不能删除此dkms模块?

  12. 12

    为什么我不能删除此文件?

  13. 13

    为什么我不能从 PHP 中的字符串中删除 HTML 标签

  14. 14

    为什么我不能从JavaCard中删除未使用的软件包?

  15. 15

    为什么我不能从Kadane算法的haskell实现中删除Ord Typeclass?

  16. 16

    为什么这不能从<select>元素中删除所有项目?

  17. 17

    为什么inpaint方法不能从IC图像中删除文本?

  18. 18

    取消读取访问权限后,为什么不能从文件中删除带有icacls的组?

  19. 19

    为什么这不能从<select>元素中删除所有项目?

  20. 20

    为什么我不能从我的 sqlite3 数据库中删除?

  21. 21

    为什么未删除此MSDN示例中的指针?

  22. 22

    为什么我不能删除表中的行

  23. 23

    为什么不能从Git的工作目录中丢弃文件?

  24. 24

    为什么我不能从远程分支中拉出?

  25. 25

    为什么我不能从异步代码中捕获异常?

  26. 26

    我为什么不能从情节提要中创建IBAction

  27. 27

    为什么不能从字典中追加此值?

  28. 28

    为什么Windows 7不能从睡眠中唤醒?

  29. 29

    为什么我不能从XPath查询中检索URL?

热门标签

归档