SQL - update cleves primarias

 
Vista:

update cleves primarias

Publicado por Anna (1 intervención) el 04/10/2000 00:00:00
Queremos modificar mediante un update una clave primaria (y foranea en otras tablas) mediante un update. ¿Es posible realizar este update o habría que borrar los registros correspondientes y copiarlos con la clave modificada?
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:update cleves primarias

Publicado por Seba (1 intervención) el 05/10/2000 00:00:00
Según lo que yo se, no. Aunque supongo que en algunos DBMS se podrán llevar a cabo instrucciones que puedan ir en conltra de las restricciones sólo si la operación completa deja la base de datos en un estado permitido. Quizás en un contexto transaccional se pueda, pero yo no he trabajdo con transacciones hasta ahora.

Sin embargo se me ocurre una idea simple para arreglar tu problema si acaso afecta a un número pequeño de tablas y/o registros.

Crea un registro nuevo con la clave nueva pero con los mismos otros datos que el registro que quieres cambiar. Cambia los campos que referencian esta clave (las claves foráneas) al valor de clave nueva.

Ahora nadie debiera quedar referenciando la clave original (todos apuntarían hacia la nueva), así que puedes eliminar el registro original sin problemas.

Al menos eso haría yo, espero que de algo sirva este mensaje

:)
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
sin imagen de perfil

RE:update cleves primarias

Publicado por rafa (2 intervenciones) el 17/10/2000 00:00:00
Si las claves son principales, no puedes updatarlas.
Si no kieres guardar historico : ej, ke la entrada tenga campos tipo fecha inicio y fecha fin, kon lo ke tendrias tantas entradas con la misma klave como movimientos realizados contra ella, la unica manera es insetar otro registro con la misma informacion y las variaciones ke kieras realizar.
pero siempre y cuando no tengas una integridad referencial contra esas tablas/claves, ya ke una integridad con delete casacade te produciria el borrado automatico dre todas las dependencias.
y tambien tener en cuenta si la tabla esta definida ke no admita duplicados , con lo ke primero debes borrar la entrada , y luego insertar el nuevo reg.
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