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

Limitar cantidad de datos

Estas en el tema de Limitar cantidad de datos en el foro de PostgreSQL en Foros del Web. Saludos, quisiera saber si es posible en postgres limitar la cantidad de datos, por ejemplo solo permitir ingresar 10 valores, cuando se ingrese el 11 ...
  #1 (permalink)  
Antiguo 28/10/2009, 15:03
Avatar de FiNo  
Fecha de Ingreso: octubre-2004
Ubicación: Costa Rica
Mensajes: 265
Antigüedad: 19 años, 6 meses
Puntos: 1
Limitar cantidad de datos

Saludos, quisiera saber si es posible en postgres limitar la cantidad de datos, por ejemplo solo permitir ingresar 10 valores, cuando se ingrese el 11 ya postgres daria error. Es posible?

Gracias
__________________
3S-CRM
  #2 (permalink)  
Antiguo 28/10/2009, 16:00
Avatar de laran  
Fecha de Ingreso: junio-2006
Ubicación: un lugar muy humedo....agradable...algunos lugares muy bonitos para visitar
Mensajes: 47
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Limitar cantidad de datos

mmmmmmmm si es posible pero para eso bederas usar un trigger!!!!!! ;) no el amigo de wini pu!!!!! son una funciones que valgame la rebusnancia te permiten agregarle otro tipo de funcionalidad a tu base de datos ;) checate algo de los triggers stoy casi seguro que con uno de esos puedes hacer lo uqe quieres y no creo que sea tan pesado ;) suerte!!!!!!!
__________________
:cool: L@R@N :cool:
  #3 (permalink)  
Antiguo 28/10/2009, 16:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Limitar cantidad de datos

con un trigger o controlar la inserción de los datos con una función.

por ejemplo

Código sql:
Ver original
  1. pruebas=> \d table2
  2.      Tabla ½public.table2╗
  3.  Columna | Tipo | Modificadores
  4. ---------+------+---------------
  5.  a       | text |
  6.  
  7. pruebas=> CREATE OR REPLACE FUNCTION insertar_limitado(text)
  8. pruebas->   RETURNS text AS
  9. pruebas-> $BODY$
  10. pruebas$> DECLARE
  11. pruebas$> contador_registros record;
  12. pruebas$> mensaje text;
  13. pruebas$> BEGIN
  14. pruebas$> SELECT INTO contador_registros COUNT(*) AS conteo FROM table2;
  15. pruebas$> IF contador_registros.conteo >= 10 THEN
  16. pruebas$>    mensaje='Imposible insertar mas registros';
  17. pruebas$> ELSE
  18. pruebas$>    INSERT INTO table2 VALUES($1);
  19. pruebas$>    mensaje='registro insertado';
  20. pruebas$> END IF;
  21. pruebas$> RETURN mensaje;
  22. pruebas$> END
  23. pruebas$> $BODY$
  24. pruebas->   LANGUAGE 'plpgsql' VOLATILE;
  25. CREATE FUNCTION
  26. pruebas=> SELECT insertar_limitado('a');
  27.  insertar_limitado
  28. --------------------
  29.  registro insertado
  30. (1 fila)
  31.  
  32. pruebas=> SELECT insertar_limitado('b');
  33.  insertar_limitado
  34. --------------------
  35.  registro insertado
  36. (1 fila)
  37.  
  38. pruebas=> SELECT insertar_limitado('c');
  39.  insertar_limitado
  40. --------------------
  41.  registro insertado
  42. (1 fila)
  43.  
  44. pruebas=> SELECT insertar_limitado('d');
  45.  insertar_limitado
  46. --------------------
  47.  registro insertado
  48. (1 fila)
  49.  
  50. pruebas=> SELECT insertar_limitado('e');
  51.  insertar_limitado
  52. --------------------
  53.  registro insertado
  54. (1 fila)
  55.  
  56. pruebas=> SELECT insertar_limitado('f');
  57.  insertar_limitado
  58. --------------------
  59.  registro insertado
  60. (1 fila)
  61.  
  62. pruebas=> SELECT insertar_limitado('g');
  63.  insertar_limitado
  64. --------------------
  65.  registro insertado
  66. (1 fila)
  67.  
  68. pruebas=> SELECT insertar_limitado('h');
  69.  insertar_limitado
  70. --------------------
  71.  registro insertado
  72. (1 fila)
  73.  
  74. pruebas=> SELECT insertar_limitado('i');
  75.  insertar_limitado
  76. --------------------
  77.  registro insertado
  78. (1 fila)
  79.  
  80. pruebas=> SELECT insertar_limitado('j');
  81.  insertar_limitado
  82. --------------------
  83.  registro insertado
  84. (1 fila)
  85.  
  86. pruebas=> SELECT insertar_limitado('k');
  87.         insertar_limitado
  88. ----------------------------------
  89.  Imposible insertar mas registros
  90. (1 fila)

el registro k sería el numero 11 y mostraría un mensaje de impedimento para insertar mas datos

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 05:11.