PL/SQL Challenge 每周一题:2021-11-20 主键(12.2)

[复制链接]
查看11 | 回复3 | 2008-9-15 01:28:12 | 显示全部楼层 |阅读模式
最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
每两周的优胜者可获得itpub奖励的技术图书一本。
以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808
原始出处:
https://devgym.oracle.com/
作者:Chris Saxon
运行环境:SQLPLUS, SERVEROUTPUT已打开, 最低版本要求:12.2
注:本题给出答案时候要求给予简要说明才能得到奖品
下列哪些选项可以用来取代下面的 ##REPLACE##,使得语句创建了一张表,带有一个名为QZ_FLIGHT_BAGGAGE_ALLOCATION_PK的主键?
create table qz_flight_baggage_allocations (
flight_baggage_allocation_id integer
##REPLACE##
not null,
flight_idinteger
not null,
baggage_type varchar2(10)
not null,
weight_limit integer
not null
);
在一个正确选项执行之后,这个查询必须返回所示的一行:
col constraint_name format a45
select constraint_name
from user_constraints
whereconstraint_type = 'P'
andtable_name = 'QZ_FLIGHT_BAGGAGE_ALLOCATIONS';
CONSTRAINT_NAME
---------------------------------------------
QZ_FLIGHT_BAGGAGE_ALLOCATION_PK
(A)
primary key
(B)
primary key qz_flight_baggage_allocation_pk
(C)
constraint qz_flight_baggage_allocation_pk
primary key
(D)
primary key
using index qz_flight_baggage_allocation_pk
(E)
constraint qz_flight_baggage_allocation_pk
primary key
using index

回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
答案CE, 本期无人参与。
A:
这忽略了约束名称,所以数据库会为你生成一个。这将会是以SYS_Cnnnnnnn的格式,例如SYS_C0028817
B:
你用了constraint子句来命名主键。这会报错:
ORA-00907: missing right parenthesis.
C:
这个选项正确使用了constraint子句来命名主键。
D:
当你定义一个主键,数据库产生了一个唯一约束来强制它。你可以使用index子句来覆盖它。这个必须引用一个已经存在的索引或者使用create index语句。
这个选项试图使用一个不存在的索引,所以会报错:
ORA-01418: specified index does not exist.
E:
using index是为了覆盖缺省的主键索引。这没有提供任何额外的子句,所以它和C选项一样。

回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
newkid 发表于 2021-12-6 12:05
答案CE, 本期无人参与。A:这忽略了约束名称,所以数据库会为你生成一个。这将会是以SYS_Cnnnnnnn的格式,例 ...

谢谢NewKids 的详细解释
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
newkid 发表于 2021-12-6 12:05
答案CE, 本期无人参与。A:这忽略了约束名称,所以数据库会为你生成一个。这将会是以SYS_Cnnnnnnn的格式,例 ...

谢谢NewKids 的详细解释
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行