2016-09-16 12 views
0

エクササイズでは、この制約を守るテーブルのコードを記述する必要があります。
フィールドIDは、必ず「ID_」と「000」で始まる10文字でなければなりません。
私はこのような何か考えた:固定長フィールドの適用方法

create table xyz (id char(10) primary key, check (id like 'ID\_%000')) 

をしかし、私が見てきたようidが10未満の文字することができます。 フィールドに正確な長さを設定する方法はありますか?あるいは、私はトリガーのようなものを使う必要がありますか?そして、その場合、どのように?おかげさまで

+0

10文字異なる(あなたが最初のアンダースコアをバックスラッシュしなければならなかった理由です)として4アンダースコアを使用できますか? 3つの文字を入力するとchar型(varcharではなく)のフィールドを作成すると、MySqlは最初のスペースで埋め込まれ、定義された次元に達する –

+0

mysqlはチェック制約をサポートしていますか? – TheGameiswar

+0

はい、私はそれを知っています。 私はID_abc000(10文字未満)やID_abcdefctfga000(10文字以上)などのIDを挿入しようとすると、このようなことを尋ねると思います。 – JamieITGirl

答えて

1

あなたは「のような」内のワイルドカードスペースで

create table xyz (id char(10) primary key, check (id like 'ID\_____000')) 
+0

はい、解決策になる可能性があります。しかし、トリガーや手技などで同じことをしなければならない場合はどうしたらよいでしょうか?ありがとう。 – JamieITGirl

+0

Googleの '挿入を検証する前にmysqlトリガ':http://cvuorinen.net/2013/05/validating-data-with-triggers-in-mysql/ – verhie

関連する問題