Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

WITH NOCHECK oracle

Estas en el tema de WITH NOCHECK oracle en el foro de Oracle en Foros del Web. Hola, estoy intentando añadir una restricción a una tabla. Se trata de que en la columna PROVINCIA no se pueda ingresar ningun valor igual a ...
  #1 (permalink)  
Antiguo 25/08/2010, 03:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
WITH NOCHECK oracle

Hola, estoy intentando añadir una restricción a una tabla. Se trata de que en la columna PROVINCIA no se pueda ingresar ningun valor igual a 'TOLEDO', pero quiero conservar los valores iguales a 'TOLEDO' existentes.

Lo que intento:
1.- En primer lugar:
ALTER TABLE TIENDAS ADD CONSTRAINT CONTROL_TOLEDO CHECK (PROVINCIA NOT LIKE 'TOLEDO');

Falla, es normal por los valores ya existentes.

Luego intento lo siguiente:

ALTER TABLE TIENDAS WITH NOCHECK ADD CONSTRAINT CONTROL_TOLEDO CHECK (PROVINCIA NOT LIKE 'TOLEDO');

Esto tb me falla, pero es la idea que querrÍa hacer, que ignorarar
el check para los registros ya existentes. El error:

Error: ORA-01735: opción ALTER TABLE no válida

SQLState: 42000
ErrorCode: 1735
Position: 22

Agradezco vuestro tiempo y ayuda.
  #2 (permalink)  
Antiguo 25/08/2010, 06:46
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: WITH NOCHECK oracle

No sé si podrás usar la opcion NO VALIDATE, cuando tenga un rato en el curro lo pruebo con una tabla de chichinabo , en cualquier caso, para ir tirando mientras encuentras una solucion que te guste mas, puedes crear un trigger BEFORE INSERT OR UPDATE en el que preguntes por TRIM(UPPER(:NEW.PROVINCIA) ) = 'TOLEDO' y abortes la operacion si es así.
  #3 (permalink)  
Antiguo 25/08/2010, 09:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: WITH NOCHECK oracle

Gracias por tu ayuda. La solución que propones me parece correcta, pero lo que quiero saber es si es posible dar de alta una restricción que ignore las ocurrencias previas que incumplan la restricción. No es un tema urgente del curro, esque estoy estudiando un poquillo y uno de los ejercicios que probaba me pedía eso, si es que es posible en Oracle!

un saludo.
  #4 (permalink)  
Antiguo 25/08/2010, 10:20
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: WITH NOCHECK oracle

Creo que para las FK's si se puede, pero no estoy seguro para las check.

A ver si mañana te lo puedo mirar

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:44.