En Oracle recuerdo que alguna vez condicione inserts mediante triggers.
He encontra esto en este enlace:
[URL="http://forums.mysql.com/read.php?99,172748,235353#msg-235353"]http://forums.mysql.com/read.php?99,172748,235353#msg-235353[/URL]
Código SQL:
Ver originalCREATE TRIGGER myTrigger BEFORE INSERT ON myTable
FOR EACH ROW BEGIN
IF CHECK=TRUE THEN
//its ok
ELSE
SET NEW = NULL; //raise error AND cancel INSERT
END IF;
END;
Supongo que en lugar de ese "check=true" pones un "(select count(*) from tabla)<[Limite de registros]" y conseguís que funcione.
O talvez haga falta declarar una variable y meter el resultado del count en ella primero.
Prueba y me cuentas.