2017-02-14 1 views
0

私の学校にはデータベースを作成するタスクがあります。このDBでは、いくつかの属性(国、個人番号、名前など)を持つpersonというテーブルを作成する必要があります。 PostgreSQL:個人番号のCH​​ECK CONSTRAINTの作成

私は個人番号は次の形式を持つべきであることを確認する必要がありますDBを作成

Xは、私は以下のようにそれを行うことを試みた0と

9の間の数字であるXXXXXXXX-XXXX

ALTER TABLE person 
    ADD CONSTRAINT persondigits CHECK 
     (personalNumber LIKE '________-____') 
     AND personalnumber IN ('0','1','2','3','4','5','6','7','8','9','-') 

ここで、personalnumberタイプはvarcharですが、これは機能しません。
私は他の多くの試みをしましたが、まだ動作していません。

+0

@LaurenzホテルAlbeが補正 – Sam

答えて

0

PostgreSQLでは、あなたはこのようにSIMILAR TOパターンを使用することができます。

CREATE TABLE person (
personal_number CHAR(13) CHECK (personal_number SIMILAR TO '[0-9]{8}-[0-9]{4}') 
); 
+0

あー、それは動作しますAWESOMEに感謝..非常に(Y)をいただきありがとうございます..私は類似の知りませんでしたTO ...もう一度感謝します – Sam

0

CHECKという制約でまたは~の演算子をregular expressionと組み合わせて使用​​してください。

関連する問題