その列のデータ型をvarchar(11)
に設定します 。毎回正確に11文字でなければならない場合、チェック制約は次のことを保証します。check (length(phone_no) = 11)
。長さと「数」(すべての数字、文字なし)を保証するには、
check (length(phone_no) = 11 and
regexp_like(phone_no, '^[[:digit:]]{11}$')
)
数値タイプを使用する必要がある場合(これは悪い考えです)、最善の策はおそらくnumeric(11,0)です。
チェック制約は、有効な入力の範囲を制限するのに役立ちますが、先行ゼロを格納する数値タイプはありません。 00125436754
のようなものの場合は、不要で回避可能なフープを飛び越える必要があります。 は有効な電話番号です。