我試圖實施一個域來檢查加拿大的正確郵政編碼。我寫了以下,但我得到一個約束錯誤。你能告訴我我哪裏可能是錯的嗎?我真的很感激。Postgresql - 域名爲加拿大郵政編碼
CREATE DOMAIN can_postal_code varchar(6)
CONSTRAINT valid_postal_code
CHECK (VALUE ~ '^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]\d[ABCEGHJKLMNPRSTVWXYZ]\d$');
我試圖實施一個域來檢查加拿大的正確郵政編碼。我寫了以下,但我得到一個約束錯誤。你能告訴我我哪裏可能是錯的嗎?我真的很感激。Postgresql - 域名爲加拿大郵政編碼
CREATE DOMAIN can_postal_code varchar(6)
CONSTRAINT valid_postal_code
CHECK (VALUE ~ '^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]\d[ABCEGHJKLMNPRSTVWXYZ]\d$');
PostgreSQL的up to 9.0使用美元報價:
CHECK (VALUE ~
$regex$^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]\d[ABCEGHJKLMNPRSTVWXYZ]\d$$regex$
);
這個表達式中的$ regex $意味着什麼?我想用正則表達式? – ueg1990 2013-02-17 19:09:30
您可以使用雙美元內的任何字符串,包括空白字符。這只是爲了區分你的字符串內的任何其他對。那會發生在你的字符串末尾,你有字符串匹配美元的結尾。 – 2013-02-17 19:30:11
@ ueg1990,檢查文檔中的[this](http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING)文章。 – vyegorov 2013-02-17 22:23:32
什麼是PostgreSQL的版本? – 2013-02-17 12:25:31
這是我的postgresql版本 – ueg1990 2013-02-17 19:08:40