con un trigger o controlar la inserción de los datos con una función.
por ejemplo
Código sql:
Ver originalpruebas=> \d table2
Tabla ½public.table2╗
Columna | Tipo | Modificadores
---------+------+---------------
a | text |
pruebas=> CREATE OR REPLACE FUNCTION insertar_limitado(text)
pruebas-> RETURNS text AS
pruebas-> $BODY$
pruebas$> DECLARE
pruebas$> contador_registros record;
pruebas$> mensaje text;
pruebas$> BEGIN
pruebas$> SELECT INTO contador_registros COUNT(*) AS conteo FROM table2;
pruebas$> IF contador_registros.conteo >= 10 THEN
pruebas$> mensaje='Imposible insertar mas registros';
pruebas$> ELSE
pruebas$> INSERT INTO table2 VALUES($1);
pruebas$> mensaje='registro insertado';
pruebas$> END IF;
pruebas$> RETURN mensaje;
pruebas$> END
pruebas$> $BODY$
pruebas-> LANGUAGE 'plpgsql' VOLATILE;
CREATE FUNCTION
pruebas=> SELECT insertar_limitado('a');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('b');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('c');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('d');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('e');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('f');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('g');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('h');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('i');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('j');
insertar_limitado
--------------------
registro insertado
(1 fila)
pruebas=> SELECT insertar_limitado('k');
insertar_limitado
----------------------------------
Imposible insertar mas registros
(1 fila)
el registro k sería el numero 11 y mostraría un mensaje de impedimento para insertar mas datos
saludos