Re: Check constraints for varchar[] and varchar[][] columns in a table

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: Check constraints for varchar[] and varchar[][] columns in a table
Дата
Msg-id CAKFQuwaBTGYS7VNpLOh3ps3bwAyeM4H3XgQMozQARvkTLy6fzw@mail.gmail.com
обсуждение исходный текст
Ответ на Check constraints for varchar[] and varchar[][] columns in a table  (Alexander Farber <alexander.farber@gmail.com>)
Список pgsql-general
On Fri, Mar 4, 2016 at 6:59 AM, Alexander Farber <alexander.farber@gmail.com> wrote:
Hello,

for a Scrabble-like word game using PostgreSQL 9.5 as backend
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 near "ALL"

ERROR:  syntax error at or near "ALL"
LINE 8:         hand1 varchar[7] NOT NULL CHECK (ALL(hand1) ~ '^[A-Z...
                                                 ^
- probably because that keyword is supposed to be on the right side?

Could anyone please recommend a way to implement check constraints here?


​Google'd: postgresql regexp array matching

The custom operator is the most direct solution - and meets this need quite well - the array-taking function is overkill for this though has the benefit of being more explicit and it can expanded upon to do things a simple operator cannot.

David J.
 

В списке pgsql-general по дате отправления:

Предыдущее
От: Alvaro Aguayo Garcia-Rada
Дата:
Сообщение: Slave-Master replication on top of BDR
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Check constraints for varchar[] and varchar[][] columns in a table