Hi,

Can you try a unique constraint instead?

See here

http://osdir.com/ml/h2-database/2012-03/msg00141.html

Ryan

On 3/05/2016 10:36 PM, sd23gl via H2 Database wrote:
Hello,

I do save usernames in a VARCHAR_IGNORECASE column. However the user can stay anonymous until a username is picked. On mysql a unique index is fine, as it allows multiple null-entries not violating the index. In the application layer I just map null to
whatever the default username is. (i.e. Guest, etc.).

Now H2 seems to not support multiple nulls in a unique index, even in mysql compat mode. I don't consider this a bug, or mising feature, this seems to be undefined in the standard for some time now. And people already argue about null enough. ;)

But I would like to emulate the behavior without autogenerating usernames for various reasons. But i would like to solve uniqueness on the database layer. I have looked into constraints, which seems to be what I am looking for, but currently struggle with the syntax:

ALTER TABLE users ADD CONSTRAINT username_unique CHECK (??? LIKE 'guest' || FALSE=(SELECT username FROM users WHERE username like ??? LIMIT 1))

Now my plan-B is to just create another table with userID, username and unique Index and just join all the time, but I would like to
avoid that, if possible/reasonable.
Another alternative would be to use a foreign key here, and unique seems to allow exactly one null entry.

Thanks for any input!

--


--
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 [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to