Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/10/2017, 05:46
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: como usar replace de mysq en oracle

Entendamos entonces un par de cosas:
1) En Oracle es perfectamente posible crear un ID que se incremente, y usarlo sobre una tabla, pero NO es parte de la estructura de la tabla como los auto_increment. Se denominan SEQUENCES, y son objetos que se crean para fines como esos en la base. Simplemente que para usarlo hay que incluirlo dentro del INSERT.
2) Cuando dices "actualizar", sigue sin ser claro si te refieres: a) Insertar un nuevo registro con datos a una tabla; b) Actualizar un valor de un campo en un registro dato (para lo cual deben tener cómo identificar ESE registro) o c) Remplazar parcialmente el contenido de un campo (lo que nos has dicho hasta ahora).

Yendo al punto 1, lo puedes ver en el manual de referencia de Oracle (siempre usa los manuales, es importantísimo):
CREATE SEQUENCE

Simplemente cras una sequence que te sirva, y luego la usas exclusivamente para esa tabla. Y digo que EXCLUSIVAMENTE, porque al ser un objeto NO dependiente de las tablas, cualquier uso de la misma en forma accidental afectará el valor siguiente.
Código SQL:
Ver original
  1. CREATE SEQUENCE mytable_seq
  2.  START WITH     1
  3.  INCREMENT BY   1
  4.  NOCACHE
  5.  NOCYCLE;

Luego en un INSERT la puedes usar directamente:
Código SQL:
Ver original
  1. INSERT INTO mytable(id, campo1, campo2)
  2. VALUES(mytable_seq.NEXTVAL, 'valor1', 'valor2');

Para el segundo caso, ¿podrías ejemplificarnos lo que intentas hacer con datos que sean reales, así se entiende mejor la idea de lo que intentas?

Por su lado, te recomiendo que tengas en cuenta que una tabla de accesos requiere siempre historicidad, algo que sirva para auditar, y NUNCA se recomienda sobrescribir un mismo registro. Pierdes trazabilidad de acciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/10/2017 a las 05:52