Hello,
I'm porting my application from SQLite to Java DB, but don't know how
to enforce an assertion, achieved in SQLite by:
st.execute("CREATE TRIGGER _fk_meanings_update_1 BEFORE UPDATE ON " +
batTable.getName() + " FOR EACH ROW BEGIN SELECT RAISE(FAIL, 'error')
WHERE (EXISTS (SELECT COUNT(*) FROM " + batTable.getName() + " GROUP
BY " + lastPubColumn.getName() + " HAVING COUNT(*)>"+maxPub+"));
END;");
However the constraint couldn't be added as a table constraint, and
I'm not finding how to raise an exception with Java DB, although it's
described here:
http://developers.sun.com/docs/javadb/10.5.3.0/devguide/index.html
One way was to set the identity column to null, but that was not
allowed at compile time too. I guess I'd have to use some dirty way.
--
Regards,
K. Gabriele
--- unchanged since 25/1/10 ---
P.S. Unless a notification (LON), please reply either with an answer
OR with " ACK" appended to this subject within 48 hours. Otherwise, I
might resend.
In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x,
this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧
¬IsAnswerTo(x,this)) ⇒ ¬IResend(this).
Also note that correspondence may be received only from specified a
priori senders, or if the subject of this email ends with a code, eg.
-LICHT01X, then also from senders whose reply contains it.
∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y.
In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ).