新宾| 通榆| 永顺| 云龙| 天池| 番禺| 古蔺| 麻江| 兴海| 无为| 原阳| 台北县| 丽水| 开阳| 郾城| 霸州| 聂荣| 甘泉| 关岭| 楚州| 高安| 谷城| 石狮| 渑池| 方城| 鄂尔多斯| 兴安| 兴平| 孝义| 凤县| 茌平| 滨海| 黄陂| 哈巴河| 察隅| 芦山| 莒县| 敦煌| 长丰| 卫辉| 沙县| 麦积| 化隆| 石棉| 新巴尔虎左旗| 常州| 本溪满族自治县| 容县| 绥滨| 威县| 华池| 休宁| 饶阳| 铁山港| 新竹市| 郯城| 武当山| 凭祥| 江宁| 科尔沁左翼后旗| 龙海| 金平| 苏家屯| 永泰| 凤县| 交城| 浑源| 西丰| 阜新市| 象州| 蓬溪| 额敏| 南木林| 临沧| 崇州| 抚顺县| 相城| 安国| 凤山| 鸡东| 广汉| 博乐| 射阳| 贡山| 龙井| 滦县| 武威| 泰顺| 绵竹| 浑源| 宜昌| 万荣| 邵武| 甘棠镇| 石泉| 榆中| 北票| 边坝| 江川| 高雄县| 南召| 花莲| 新会| 宁安| 阳朔| 淮阴| 乐山| 绵阳| 平山| 泸西| 富民| 城步| 始兴| 衡山| 深圳| 沧源| 富宁| 句容| 且末| 吉木萨尔| 铁山| 蒲城| 濠江| 永定| 临澧| 张家川| 同心| 云霄| 芷江| 盈江| 沿河| 湘潭县| 丹寨| 永胜| 鸡西| 双鸭山| 平陆| 叙永| 长汀| 鄂温克族自治旗| 罗城| 临西| 抚远| 沂水| 龙湾| 成都| 墨玉| 兴海| 砀山| 克山| 溧阳| 马鞍山| 长安| 新邱| 戚墅堰| 四平| 大姚| 滦县| 武陟| 眉县| 灵宝| 弋阳| 高平| 本溪满族自治县| 大田| 上思| 海口| 沾益| 克什克腾旗| 罗平| 本溪市| 南城| 南涧| 南沙岛| 寿县| 来安| 营山| 林芝县| 嘉祥| 曲水| 微山| 新竹县| 惠东| 平南| 玉溪| 前郭尔罗斯| 兰州| 峨山| 黄冈| 蒲江| 榆社| 甘棠镇| 光山| 怀远| 元谋| 会泽| 富裕| 索县| 东西湖| 政和| 呼和浩特| 金昌| 高陵| 赣州| 昂仁| 忻城| 南充| 长泰| 叙永| 调兵山| 江夏| 连云港| 抚顺县| 桃江| 新田| 西乌珠穆沁旗| 孟津| 缙云| 元氏| 射洪| 阿拉善左旗| 嘉定| 蓝田| 邻水| 灵璧| 郏县| 东丰| 长武| 汤旺河| 普洱| 长治县| 通辽| 田林| 阿荣旗| 泸西| 陆川| 温县| 内黄| 长沙县| 安陆| 隆林| 吉水| 汤旺河| 宁南| 全椒| 吴江| 通海| 西乡| 铅山| 石景山| 万全| 桦甸| 平远| 秀山| 惠阳| 阜宁| 鄂温克族自治旗| 固原| 宾川| 乌兰| 林芝县| 斗门| 察哈尔右翼后旗| 福建|

ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 557|回复: 2

[每日一题] PL/SQL Challenge 每日一题:2018-1-5 主键

[复制链接]
论坛徽章:
486
秀才
日期:2018-05-22 10:33:01秀才
日期:2018-05-22 10:03:12秀才
日期:2018-05-22 10:03:12秀才
日期:2018-05-22 10:03:12状元
日期:2018-05-22 10:04:09举人
日期:2018-05-22 10:04:09秀才
日期:2018-05-22 14:10:21秀才
日期:2018-05-22 14:10:21秀才
日期:2018-05-22 14:10:21秀才
日期:2018-05-22 14:10:21
跳转到指定楼层
1#
发表于 2018-1-10 05:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。

每两周的优胜者可获得itpub奖励的技术图书一本。

以往旧题索引:
http://www-itpub-net.bwp888.com/forum.php?m ... eid&typeid=1808

原始出处:
http://www.plsqlchallenge.com.bwp888.com/

作者: Chris Saxon

运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品

下列哪些选项创建了qz_colours表(可能还有其他对象),使得你可以删除其主键:

alter table qz_colours drop primary key ;


(A)
create table qz_colours (
  rgb_hex_code varchar2(6) not null primary key ,
  color_name   varchar2(100) not null
) ;

(B)
create table qz_colours (
  rgb_hex_code varchar2(6) not null primary key ,
  color_name   varchar2(100) not null
) organization index;

(C)
create table qz_colours (
  rgb_hex_code varchar2(6) not null primary key ,
  color_name   varchar2(100) not null
);
create table qz_bricks (
  brick_id             int not null primary key ,
  colour_rgb_hex_code varchar2(6) not null
    references qz_colours ( rgb_hex_code )
);

(D)
create table qz_colours (
  rgb_hex_code varchar2(6) not null primary key ,
  color_name   varchar2(100) not null,
  rgb_hex_ref  varchar2(6) not null
    references qz_colours ( rgb_hex_code )
) ;

(E)
create or replace type qz_colours_tp as object (
  rgb_hex_code varchar2(6),
  color_name   varchar2(100)
);
/

create table qz_colours of qz_colours_tp (
  rgb_hex_code not null primary key,
  color_name   not null
) object identifier is primary key ;

论坛徽章:
20
2012新春纪念徽章
日期:2018-05-22 11:58:44秀才
日期:2018-05-22 09:55:08秀才
日期:2018-05-22 09:55:08秀才
日期:2018-05-22 10:21:13秀才
日期:2018-05-22 10:30:00秀才
日期:2018-05-22 10:30:00秀才
日期:2018-05-22 10:30:00秀才
日期:2018-05-22 15:04:10秀才
日期:2018-05-22 15:10:43秀才
日期:2018-05-22 09:55:08
2#
发表于 2018-1-10 08:35 | 只看该作者
正确答案:A
A:正确,普通的主键,没有被引用、不是其他表的外键等,可以删除。
B:错误,索引表或者排序散列簇,无法删除/禁用/延迟主键约束条件
C:错误,主键已经是另外一张表的外键,不能删除。
D:错误,主键已经被引用,不能删除。
E:错误,无法删除对象表的主键,该对象表的对象标识符基于主键。
论坛徽章:
486
秀才
日期:2018-05-22 10:33:01秀才
日期:2018-05-22 10:03:12秀才
日期:2018-05-22 10:03:12秀才
日期:2018-05-22 10:03:12状元
日期:2018-05-22 10:04:09举人
日期:2018-05-22 10:04:09秀才
日期:2018-05-22 14:10:21秀才
日期:2018-05-22 14:10:21秀才
日期:2018-05-22 14:10:21秀才
日期:2018-05-22 14:10:21
3#
 楼主| 发表于 2018-1-11 04:48 | 只看该作者
答案A, 2楼得奖。

A: 是的,这是一个常规的堆表,没有任何外键引用到该主键。所以你可以去除它。
B: 这将会创建一个索引组织表。你不可以去除外键。这会报错:
"ORA-25188: cannot drop/disable/defer the primary key constraint for index-organized tables or sorted hash cluster".
C: Qz_bricks 有一个外键引用了qz_colours的主键。如果一个主键有外键指向它,你就不能去除这个主键。所以这会报错:
"ORA-02273: this unique/primary key is referenced by some foreign keys".

你可以通过加上CASCADE子句来克服它。这会迫使数据库把外键也去除。

D: Qz_colours 有一个自引用外键。但是去除主键时的外键限制仍然有效。所以这也会报错:
"ORA-02273: this unique/primary key is referenced by some foreign keys".

E: 这会创建一个对象表。主键是它的对象ID(OID)。你不能从对象表去除OID主键。所以这会报错:
"ORA-22875: cannot drop primary key of an object table whose object identifier is primary key based".


您需要登录后才可以回帖 登录 | 注册

本版积分规则

-腰屯乡论坛,腰屯乡社区 - bbs-mbn.bwp888.com
DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018-05-22前

报名链接>>
井栏树论坛 舞阳县论坛 中华人民共和国反分裂国家法论坛 新宾满族自治县论坛 东海论坛
礼县论坛 永康市论坛 苏圩镇论坛 花溪区论坛 中华人民共和国反分裂国家法论坛
电子杂志 虎吧 老博客 读书频道 积分竞拍 文本模式 帮助
  IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表
一碗水论坛 宁阳县论坛 长白朝鲜族自治县论坛 印江土家族苗族自治县论坛 新安县论坛
金花路论坛 云县论坛 官桥镇论坛 通州区论坛 团风县论坛