char / varchar mit fixer Länge?

insertNameHere

Grünschnabel
Hallo,
ich habe folgendes Problem:
Ich will eine Spalte language_id erzeugen, in der nur Einträge mit der genauen Länge von 2 Zeichen stehen dürfen, wenn ich aber als typ z.B. char(2) nehme kann ich trotzdem noch Inhalte mit einem Zeichen einfügen. Gibt es für so etwas auch einen sql-typ?

vielen dank
 
Nein, gibt es nicht char(2) belegt aber immer 2 Zeichen, da ist varchar speichertechnisch besser. Das die Eingabe aber min. 2 Zeichen hat musst du leider mit deiner Programmlogik abbilden.

Grüsse bb
 
Soviel mir bekannt ist gibts sowas nicht. Sowas könntest du aber mit einer Funktion bewerkstelligen. Oder das ganze schon beim Client abfangen.
 
Hallo,

wenn du z.B. Oracle verwendest und als Datentyp VARCHAR2 / VARCHAR nimmst, kannst du es mit einem Check-Constraint lösen:

SQL:
CREATE TABLE t (testcol varchar2(2) check (length(testcol)=2));

Wenn Du CHAR(2) als Spaltentyp verwenden möchtest und Leerzeichen keine erlaubten Zeichen sein sollen, kann man sich evtl. mit strlen(trim(testcol)) =2 behelfen.

Sollte mit MySQL ähnlich realisierbar sein.

Markus
 
Zuletzt bearbeitet:
Zurück