SQL 11 -stellige ID Primary Key

Pille1002

Lt. Junior Grade
Registriert
Apr. 2013
Beiträge
396
Hallo Zusammen,

ich habe eine relative einfache Frage, da ich mir aber usicher bin würde ich gern noch euere Meinung/Idee hören.

Ich möchte in einer Tabelle einen Primärchlüssel haben, der mindestens 11 -stellig ist.

Mein Ansatz ist:

CREATE TABLE Porukt
(
SerienNR BIGINT NOT NULL,
.
.
.
CONSTARINT ckSerienNr CHECK(SerienNR > 9999999999)
)

Wenn es alphanummerische Werte wären würde ich einfach eine wildcard via like machen.. aber bei Zahlen?
Gibt es auch eine andere Umsetzung, diese finde nicht dolle.
(keine automatische Werte ala Auto_increment & co )

dankö
 
Andere Frage: Möchtest du mit der Seriennummer rechnen?
Wenn nein - warum dann int/bigint?
 
Welche DB?
In Oracle würde ich ne Sequence erstellen mit einem entsprechendem minvalue.
 
Nein, mit dieser ID soll nicht gerechnet werden.
Ich helfe einem Freund bei Prüfunsgvorbereitungen und das war eine Aufgabe.

Ich habe Ihm die Lösung mit < 999999999 genannt weil mir nix anderes eingefallen ist.. denke es geht sicher schöner.
BIGINT weil int zu klein wäre für 11 stellig meine ich aus dem Kopf

DB ist eine MYSQL
 
Nö, das ist schon die "schöne" Lösung ;). Vielleicht nicht unbedingt für einen Mensch, der den Code liest (da wäre es vielleicht netter, man würde die 11 für die Anzahl Stellen irgendwie direkt sehen), aber sehr wohl aus Sicht des Rechners: Alle anderen Varianten über Like oder len oder ähnliches erfordern intern die Umwandlung in einen String und entsprechende Auswertung desselben, das ist um Gößenordnungen ineffizienter als der einfache numerische Vergleich. Von daher hätte ich gesagt: genau richtig so.
 
danke
 
Zurück
Oben