我认为在Oracle中,使用USING
子句only而不是ON
来指定在两个表具有公共列的情况下要测试哪些列是否相等 - 名称。但后来我看到了这个:
create table example (
col1 number not null,
col2 clob not null
);
alter table example add constraint ex_pk primary key ( col1 ) using index enable;
using index enable
在这做什么?
using
子句的最常见用法列表是什么?
答案 0 :(得分:1)
引用Tom Kyte here
它允许您指定存储选项,名称和其他属性 该约束所需的索引。
alter table t add constraint t_pk primary key(x);
将使用任何内容在默认表空间中创建唯一索引 存储参数是该表空间的默认值。
你alter table将在指定的表空间中创建索引, 使用您的存储选项。
如:
alter table example add constraint ex_pk primary key ( col1 )
USING INDEX
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE (INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 505
PCTINCREASE 0 FREELISTS 6 FREELIST GROUPS 2 BUFFER_POOL DEFAULT)
TABLESPACE "MY_TABLESPACE"
ENABLE
/
答案 1 :(得分:1)
关于USING
来自Oracle docs:
您可以指定与约束关联的索引的详细信息。
如果您需要更明确地控制与之关联的索引 UNIQUE和PRIMARY KEY约束,数据库允许您:
指定数据库用于强制执行的现有索引 约束
指定数据库用于创建的CREATE INDEX语句 索引并强制执行约束
ENABLE
与索引无关,但与约束本身无关。
答案 2 :(得分:1)
我认为在Oracle中,USING子句仅用于代替ON
..........
什么是使用子句的最常见用法列表?
USING
只是一个关键字 - 保留字
它在Oracle的许多SQL和PL / SQL命令中使用,其中一些是:
您可以在参考文献中找到所有这些内容,搜索" Oracle SQL参考"和#34; Oracle PL / SQL参考"使用您最喜欢的搜索引擎,您会找到以下链接:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/toc.htm
https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/toc.htm
从上面的列表中我大多只使用4:SELECT ... USING,MERGE ... USING,EXECUTE IMMEDIATE ... USING AND OPEN FOR ... USING