Oracle - Añadir un campo NOT NULL a una tabla con registros

   
Vista:

Añadir un campo NOT NULL a una tabla con registros

Publicado por Daniel  (1 intervención) el 12/05/2008 09:23:11
Hola a todos/as,

tengo un problema, quiero añadir un campo a una tabla que no admita nulos, pero como la tabla contiene registros, al añadir ese campo me salta un error porque los registros que ya se encuentran en la tabla no tienen un valor prefijado para ese campo ( y realmente no quiero prefijar un valor para esos campos)

Mi pregunta es: ¿alguien sabe si puedo añadir un campo con una restricción de tipo Not null que no afecte a los registros que ya se encuentran en la tabla?

Muchas gracias por anticipado

Saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Añadir un campo NOT NULL a una tabla con regist

Publicado por Pedro (25 intervenciones) el 12/05/2008 10:01:59
Hola buenas, tu error en parte es debido a los datos existentes en al tabla pero estos no tienes q tocarlos mi ponerles un valor por defecto, al unico campo que deberias ponerle en todo caso un default es al campo nuevo que vas a crear ya que al tener registro la tabla y crear nuevos campos, estos por defecto estan a null, por lo q esto choca con la propia restriccion not null.

Puedes hacer dos cosas

Creas el campo sin la constraint, rellenar los campos y levantar la constraint. (esto te evitaria crearte el default pero debes asegurarte que en ningun caso se keda a null)

Crear el campo con el default

espero que te sirva, un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir un campo NOT NULL a una tabla con regist

Publicado por Filiberto Bacón (1 intervención) el 12/05/2008 16:52:37
Soluciones perfectamente válidas.

Peeeeeeeeero. SI haces el ADD COLUMN XXXXX DEFAULT XXXXXX puede pasarte que los pl's que accedan a ese campo nuevo NO LE VEAN.

No preguntes porqué, supongo que es un bug del oracle pero ese problema ya lo hemos tenido al añadir a una tabla un campo nuevo not null con valor por defecto y hemos tenido que dar un rodeo :

-- Añadir el campo ( opcional )
-- Hacer el update
-- Cambiar el campo a not null con "default value "

Creetelo colega.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir un campo NOT NULL a una tabla con regist

Publicado por laura (2 intervenciones) el 05/06/2008 17:39:49
coincido con filiberto esa es la mejor opcion, me ha pasado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar