ORACLE DDL - CONSTRAINTS

IExplorer bookmarks rss
Más vistos:
  1. CREATE INDEX
  2. DECODE
  3. TO_CHAR
  4. TO_DATE
  5. SELECT
  6. GRANT
  7. INSERT
  8. TUNNING
  9. UPDATE
  10. CREATE USER

Constraints

Para cambiar las restricciones y la clave primaria de una tabla debemos usar ALTER TABLE.

Crear una clave primaria (primary key):
ALTER TABLE T_PEDIDOS ADD CONSTRAINT PK_PEDIDOS
      PRIMARY KEY (numpedido,lineapedido);
Crear una clave externa, para integridad referencial (foreign key):
ALTER TABLE T_PEDIDOS ADD CONSTRAINT FK_PEDIDOS_CLIENTES
      FOREIGN KEY (codcliente) REFERENCES T_CLIENTES (codcliente));
Crear un control de valores (check constraint):
ALTER TABLE T_PEDIDOS ADD CONSTRAINT CK_ESTADO
      CHECK (estado IN (1,2,3));
Crear una restricción UNIQUE:
ALTER TABLE T_PEDIDOS ADD CONSTRAINT UK_ESTADO
      UNIQUE (correosid);

Normalmente una restricción de este tipo se implementa mediante un indice unico (ver CREATE INDEX).

Borrar una restricción:
ALTER TABLE T_PEDIDOS DROP CONSTRAINT CON1_PEDIDOS;
Deshabilita una restricción:
ALTER TABLE T_PEDIDOS DISABLE CONSTRAINT CON1_PEDIDOS;
habilita una restricción:
ALTER TABLE T_PEDIDOS ENABLE CONSTRAINT CON1_PEDIDOS;
la sintaxis ALTER TABLE para restricciones es:
   ALTER TABLE [esquema.]tabla
      constraint_clause,...
          [ENABLE enable_clause | DISABLE disable_clause]
              [{ENABLE|DISABLE} TABLE LOCK]
                 [{ENABLE|DISABLE} ALL TRIGGERS];
donde constraint_clause puede ser alguna de las siguientes entradas:
   ADD out_of_line_constraint(s)
   ADD out_of_line_referential_constraint
   DROP PRIMARY KEY [CASCADE] [{KEEP|DROP} INDEX]
   DROP UNIQUE (column,...) [{KEEP|DROP} INDEX]
   DROP CONSTRAINT constraint [CASCADE]
   MODIFY CONSTRAINT constraint constrnt_state
   MODIFY PRIMARY KEY constrnt_state
   MODIFY UNIQUE (column,...) constrnt_state
   RENAME CONSTRAINT constraint TO new_name
donde a su vez constrnt_state puede ser:
 
    [[NOT] DEFERRABLE] [INITIALLY {IMMEDIATE|DEFERRED}]
       [RELY | NORELY] [USING INDEX using_index_clause]
          [ENABLE|DISABLE] [VALIDATE|NOVALIDATE]
              [EXCEPTIONS INTO [schema.]table]
Borrar una restricción:
   ALTER TABLE T_PEDIDOS DROP CONSTRAINT CON1_PEDIDOS;

Explicación de la sintaxis utilizada para los comandos:
Las palabras en mayusculas son comandos de oracle.
Las palabras en minusculas son opiones modificables
Las partes enmarcadas con [] son opcionales
Las palabras en negrita son las opciones por defecto
Las partes enmarcadas con {} son alternativas (una u otra).
El simbolo | indica OR