Hello
I'm trying to port some things over from a postgres database we have. I'm stuck on a check constraint on one of our postgres tables. Basically I need to see if any other rows in the table would prevent the current one from being inserted.
In this case, two rows cannot* share a user id,* have "consumed" true, AND* have an expiry date some time in the future.
in postgres, I'd use a function, and pass values from the row into the function, which would perform a SELECT over the table to see if any existing rows would prevent this row from being inserted.
CREATE OR REPLACE FUNCTION check_password_reset_token(int) RETURNS boolean AS '
SELECT count(*)>0FROM password_tokensWHERE (user_id=$1 AND consumed=true AND expiry>now());' LANGUAGE SQL;
ALTER TABLE password_tokens ADD CONSTRAINT active_password_token_check CHECK (check_password_reset_token(user_id));
When I try the above code in H2, it complains about not understanding functions, but when i try to move the whole thing into the check constraint in the alter table statement, then I get stuck on actually passing the row's values into the parts of the SELECT up there.
I know h2 supports Java functions, so that's a last resort, but we're only using h2 for in-memory testing and I don't want to have to test the test code, as it were. Is there another way to perform the same check constraint in h2?--
You received this message because you are subscribed to the Google Groups "H2 Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to h2-database...@googlegroups.com.
To post to this group, send email to h2-da...@googlegroups.com.
Visit this group at http://groups.google.com/group/h2-database?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.