SQLite Forum

Check Contraints
Login
An uglier way without any extension function dependencies might look something like this: 

```sql
sqlite> CREATE TABLE Vehicle(
   ...>   Vin      TEXT NOT NULL PRIMARY KEY,
   ...>   Odometer INTEGER NOT NULL,
   ...>   CHECK (Vin GLOB Replace(Hex(ZeroBlob(Length(Vin))), '00', '[A-Z0-9]'))
   ...> );
sqlite> INSERT INTO Vehicle VALUES ('ABC123', 0);
sqlite> INSERT INTO Vehicle VALUES ('ABCx123', 0);
Error: CHECK constraint failed: Vin GLOB Replace(Hex(ZeroBlob(Length(Vin))), '00', '[A-Z0-9]')
```