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

Crear tabla con un tope de registros

Estas en el tema de Crear tabla con un tope de registros en el foro de Oracle en Foros del Web. Hola buenas! Mi duda es: existe una forma de crear una tabla oracle que sólo tenga una determinada cantidad de registros?, Digamos 5000 es el ...
  #1 (permalink)  
Antiguo 02/06/2008, 19:25
 
Fecha de Ingreso: junio-2008
Mensajes: 14
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Crear tabla con un tope de registros

Hola buenas!
Mi duda es: existe una forma de crear una tabla oracle que sólo tenga una determinada cantidad de registros?,
Digamos 5000 es el tope de registros y que si llega el registro 5001 se inserte pero que se borre automáticamente el primero que se insertó en la tabla.
La versión que manejo es 9i y desde ya les agradezco su atención y/o respuestas.

John
  #2 (permalink)  
Antiguo 03/06/2008, 02:51
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Crear tabla con un tope de registros

Hola,

La respuesta rapida es no. Tendrias que programar ese comportamiento con PL/SQL o SQL directo. ¿Para que necesitas la limitacion de 5000 registros?

Saludos
  #3 (permalink)  
Antiguo 03/06/2008, 08:37
 
Fecha de Ingreso: junio-2008
Mensajes: 14
Antigüedad: 15 años, 10 meses
Puntos: 0
Información Respuesta: Crear tabla con un tope de registros

Primero, gracias por darse el tiempo de responder.
Segundo, necesito ese tope porque es una tabla que se llena muy rápido con iformación que luego de unos minutos ya no sirve y por eso hay que borrar los registros iniciales. Y como la tabla se consulta constantemente, hacer un barrido por los miles de registros se torne lento.

Quizás pase por un cambio en la lógica del sp para que determine ciertos datos en otra forma y no llenando una tabla con tantos registros....

Lo otro pensé en un trigger pero hacer un delete después de cada insert también es como pesado para el motor.
  #4 (permalink)  
Antiguo 03/06/2008, 08:47
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Crear tabla con un tope de registros

Hola,

Podrias hacer un JOB dentro de la base de datos para que te depure la tabla cada cierto tiempo, teniendo en cuenta un criterio, como puede ser la catidad de registros o la fecha. Te dejo un link sobre DBMS_JOB http://www.psoug.org/reference/dbms_job.html

De todos modos una tabla con 5000 registros no es un problema, aunque no conozco el hardware donde esta instalado Oracle.

Saludos
  #5 (permalink)  
Antiguo 03/06/2008, 21:00
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Crear tabla con un tope de registros

Cita:
Iniciado por JohnwF Ver Mensaje
Lo otro pensé en un trigger pero hacer un delete después de cada insert también es como pesado para el motor.
es rara una tabla normal en la que no necesites la info despues, si no afecta el que elimines esa info la mas facil es que te crees un triguer after insert y borrer el primer registro insertado, pesado para el motor? seria practicamente nada considerando que vas a dejar 5000 registros en esa tabla
__________________
Blogzote.com :-) Mi blog
  #6 (permalink)  
Antiguo 04/06/2008, 06:15
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Crear tabla con un tope de registros

kikolice, corrigeme si me equivoco, pero si intentas borrar un registro de una tabla con un AFTER-BEFORE INSERT ¿ No te saldrá lo de tabla mutante ?
  #7 (permalink)  
Antiguo 04/06/2008, 07:27
 
Fecha de Ingreso: junio-2008
Mensajes: 14
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Crear tabla con un tope de registros

Tiene razón lo que dice Kikolice respecto de que no es normal insertar registros en una tabla que después no vas a necesitar.
Pero la verdad es que en este caso los necesito sólo una vez y luego no sirven. Y es en esa vez en donde tengo que insertar varios para saber cuál es el que voy a ocupar finalmente.
Pero quizás el tema vaya por el lado de cambiar la forma de obtener los datos y no utilizar tantos registros en la tabla.
De todas formas les agradezco mucho el tiempo y la información a todos... imaginé que nadie pescaría la solicitud que hice pero me alegra estar equivocado.
Gracias de nuevo a todos!!.

John
  #8 (permalink)  
Antiguo 04/06/2008, 20:38
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Crear tabla con un tope de registros

Cita:
Iniciado por jc3000 Ver Mensaje
kikolice, corrigeme si me equivoco, pero si intentas borrar un registro de una tabla con un AFTER-BEFORE INSERT ¿ No te saldrá lo de tabla mutante ?
hace mucho que no me topo con una tabla mutante y no tengo la info fresca de por que sucede, no se, se tendria que probar esa posibilidad, si asi fuera entonces me haria lo que dice matanga, un job que depure cada cierto tiempo y me quito de broncas
__________________
Blogzote.com :-) Mi blog
  #9 (permalink)  
Antiguo 05/06/2008, 00:48
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Crear tabla con un tope de registros

De todas maneras, hacer un mantenimiento para que una tabla no supere los 5000 registros creo que es matar moscas a cañonazos. Pero bueno, un job es buena idea.
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 22:08.