2016-09-16 4 views
0

Für Übung, muss ich den Code für eine Tabelle schreiben, die diese Einschränkung beachtet:
Feld ID muss genau 10 Zeichen sein, beginnend immer für "ID_" und endet mit "000".
Ich dachte, so etwas wie diese:Wie feste Felder zu erzwingen

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

Aber wie ich id weniger als 10 seinen Charakter gesehen habe. Gibt es eine Möglichkeit, einem Feld eine genaue Länge aufzuerlegen? Oder, vielleicht, muss ich etwas wie Auslöser verwenden? Und in diesem Fall, wie? Danke.

+0

10 Zeichen unterschiedlich von Raum? Wenn Sie ein Feld mit char-Typ (und nicht varchar) erstellen, wenn Sie 3 Zeichen setzen, wird MySql mit Anfangs-Leerzeichen aufgefüllt, um die definierte Dimension zu erreichen. –

+0

unterstützt mysql check constraints? – TheGameiswar

+0

Ja, das weiß ich. Ich denke, die Übung fragt etwas wie das: wenn ich versuche, eine ID wie ID_abc000 (die weniger als 10 Zeichen ist) oder ID_abcdefctgfga000 (die mehr als 10 Zeichen ist), kann es nicht erlaubt werden. – JamieITGirl

Antwort

1

Sie können 4 Unterstrichen als Platzhalter in ‚wie‘ verwenden (das ist, warum Sie den ersten Unterstrich Backslash hatte)

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

Ja, es kann eine Lösung sein. Aber was, wenn ich dasselbe durch einen Auslöser oder eine Prozedur oder etwas Ähnliches tun muss? Vielen Dank. – JamieITGirl

+0

google 'mysql trigger vor dem Einfügen Eingabe bestätigen': http://cvuorinen.net/2013/05/validating-data-with-triggers-in-mysql/ – verhie

Verwandte Themen