For a word game I am trying to add CHECK
constraints to the VARCHAR
arrays:
CREATE TABLE words_games (
gid SERIAL PRIMARY KEY,
created timestamptz NOT NULL,
player1 integer REFERENCES words_users(uid) ON DELETE CASCADE NOT NULL,
player2 integer REFERENCES words_users(uid) ON DELETE CASCADE,
played1 timestamptz,
played2 timestamptz,
hand1 varchar[7] NOT NULL CHECK (ALL(hand1) ~ '^[*A-Z]$'),
hand2 varchar[7] NOT NULL CHECK (ALL(hand2) ~ '^[*A-Z]$'),
pile varchar[116] NOT NULL CHECK (ALL(pile) ~ '^[*A-Z]$'),
board varchar[15][15] NOT NULL CHECK (ALL(board) ~ '^[.A-Z]$'),
style integer NOT NULL CHECK (1 <= style AND style <= 4)
);
but get syntax errors:
ERROR: syntax error at or near "ALL"
LINE 8: hand1 varchar[7] NOT NULL CHECK (ALL(hand1) ~ '^[A-Z...
^
probably because the ALL
keyword is supposed to be on the right side?
Could anyone please recommend a way to implement check constraints here?