Hello!

I'm working with a table that looks like this:

create table core.users (
  user_id                    char (16) for bit data not null,
  user_password_hash_algo    varchar (64) not null,
  user_password_hash         varchar (64) not null,
  user_email                 varchar (128) not null,
  user_display_name          varchar (128) not null,
  user_locked                boolean not null,

  constraint user_id_key primary key (user_id),
  constraint user_id_nonzero check (user_id !=
  cast('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' as char(16) for bit data)),
  constraint user_display_name_unique unique (user_display_name))

The user_id_nonzero check isn't accepted, however ("Cannot convert types
'CHAR' to 'CHAR () FOR BIT DATA'.").

What I'm actually trying to do: The application I'm working with
identifies users with java.util.UUID values. The application itself
applies a special meaning to the null UUID (all zeroes), and I want to
make sure that all-zero UUIDs never make it into the database. Is there
a valid way to specify the above constraint?

-- 
Mark Raynsford | http://www.io7m.com

Attachment: pgpdDnKB8JDCN.pgp
Description: OpenPGP digital signature

Reply via email to