Por cierto, para comprobar que un producto no tiene dos precios en la misma fecha, por qué no haces esta select???
Cita: SELECT count(1) into contador
FROM tarifas a
WHERE a.id_producto = :new id_producto
and fecha= :new id_fecha;
Ahora bien, esto tiene un problema, al comparar dos campo fechas, estas comparando todo el campo fecha (dias, mes, año, minutos, horas y segundo), por lo que es dificl que sean iguales.
Si la hora de creacion te da igual y solo te importa el dia, entonces:
Cita: SELECT count(1) into contador
FROM tarifas a
WHERE a.id_producto = :new id_producto
and to_char(fecha,'dd/mm/yyyy')= to_char(:new id_fecha, 'dd/mm/yyyy');
Esta comprobación la puedes hacer antes de hacer la insercion en la bbdd, usando las variables id_producto y fecha que recojas del formulario en el que estes trabajando.
Y otra cosa.
Dices qeu tus clave es: id_tarifa,id__producto
al tener esta clave, no vas a poder tener un mismo producto con tarifas iguales (independientemente de las fechas) Ej. PRODUCTO 1 VALE 3 EUROS
PRODUCTO 1 VALE 4 EUROS SUBE LE PRODUCTO
PRODUCTO 1 VALE 3 EUROS (BAJA POR LA CRISIS) no te va a dejar por la clave
Ya nos deices que tal
saludos