2016-12-21 3 views
0

Ich dachte, dass in Oracle USING Klausel wurde only anstelle von ON verwendet, um anzugeben, welche Spalten auf Gleichheit im Falle, dass die beiden Tabellen einen gemeinsamen Spaltennamen haben. Aber dann sah ich diese:Oracle USING-Klausel aus einem JOIN-Bereich

create table example (

    col1   number not null, 
    col2   clob not null 
); 

alter table example add constraint ex_pk primary key (col1) using index enable; 

was using index enable ist hier?

Was ist eine Liste der häufigsten Anwendungen der using Klausel?

+2

Die Das 'USING' Schlüsselwort in der Syntax für' ALTER TABLE' hat nichts mit 'USING' in einer' FROM' Klausel zu tun. –

+2

Es gibt keine "USING" -Klausel. Es gibt viele solche Klauseln - eine für jeden Kontext, in dem das Schlüsselwort 'USING' verwendet wird. Wie Sie bereits bemerkt haben, gibt es eine "USING" -Klausel in Joins. Es gibt eine nicht verwandte 'USING'-Klausel, wenn ein primärer oder eindeutiger Schlüssel definiert wird. Es gibt auch eine nicht verwandte "USING" -Klausel in der "MERGE" -Anweisung. Warum benötigen Sie eine Liste aller ** möglichen Verwendungen dieses Keywords? – mathguy

Antwort

1

Ich dachte, dass in Oracle, die NG-Klausel nur statt ON
verwendet wurde ..........
was ist eine Liste der häufigsten Anwendungen der using-Klausel?

USING ist nur ein Schlüsselwort - ein reserviertes Wort.
Es ist in vielen SQL und PL/SQL-Befehle in Oracle verwendet wird, sind einige von ihnen:

  • SELECT .... JOIN .... weiter verwenden ....
  • MERGE .. ... USING ...
  • translate (x y verwenden)
  • CREATE JAVA .... USING ...
  • ASSOCIATE STATISTIK .... weiter verwenden ....
  • CREATE | ALTER INDEXTYPE ..... weiter verwenden ...
  • CREATE DATABASE LINK ..... weiter verwenden ....
  • CREATE TABLE .... UNTER VERWENDUNG INDEX .....
  • CREATE MATERIALIZED VIEW ..... weiter verwenden INDEX ..... weiter verwenden Rollback-Segment
  • EXECUTE IMMEDIATE .... weiter verwenden ....
  • OPEN .... FÜR .... weiter verwenden ......

von ihnen Alles, was Sie in der finden Referenz, wenn nach "Oracle SQL-Referenz" und "Oracle PL/SQL-Referenz" Ihre Lieblings-Suchmaschine verwenden, werden Sie diese Links finden:


Aus der obigen Liste verwende ich meistens nur 4: SELECT ... weiter verwenden, MERGE ... weiter verwenden, EXECUTE IMMEDIATE ... weiter verwenden und offen für ... weiter verwenden

1

Zitiert Tom Kyte here

Es Sie die Speicheroptionen festlegen können, den Namen und andere Attribute von der Index, der für diese Einschränkung notwendig ist.

Tabelle ändern t Einschränkung hinzufügen t_pk Primärschlüssel (x);

erstellt einen eindeutigen Index in Ihrem Standard-Tablespace, wobei Speicherparameter als Standard für diesen Tablespace verwendet werden.

Sie ändern Tabelle erstellt den Index in diesem angegebenen Tablespace, mit Ihren Speicheroptionen.

wie:

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

Von Oracle docs über die USING:

können Sie geben Details über die Indizes mit Einschränkungen verbunden.

Wenn Sie mehr explizite Kontrolle über die Indizes mit UNIQUE und Primärschlüssel zugeordnet erfordern, können die Datenbank Sie:

  • einen vorhandenen Index angeben, dass die Datenbank zu verwenden, ist die Zwang zur Durchsetzung

  • ein Geben CREATE INDEX-Anweisung, dass die Datenbank zu verwenden ist den Index zu erstellen und Durchsetzung der Einschränkung

Die ENABLE bezieht sich nicht auf den Index, sondern auf die Einschränkung selbst.

Verwandte Themen