Ich möchte eine Zahl beschränken, so dass es streng 8 Ziffern hat .... nicht mehr und nicht weniger. Es gibt führende Nullen, wenn die Nummer weniger als 8 Ziffern lang ist.Constrain Ziffern postgresql
ALTER TABLE mytable ADD CONSTRAINT digit_chk CHECK (mynum ~ '[0-9]{8}');
jedoch die obige Syntax verwendet wird, ist es kein Fehler erzeugt wird, wenn ich eine Zahl mit 9 Ziffern einfügen:
INSERT INTO mytable (mynum) VALUES ('123456789');
Warum?
Ich sollte beachten, dass ein Fehler generiert wird, wenn ich weniger als 8 Ziffern einfüge.
Reicht es aus, eine numerische Spalte mit '(mynum> = 10000000 AND mynum <= 99999999)' zu haben? – Glenn
Nein. Weil die Nummer führende Nullen haben muss. – Haydos
Padding führende Nullen ist in der Regel eine Präsentationsfunktion. Aber vielleicht nicht in deinem Fall. – Glenn