Maybe try this (use a lower left shift for testing): CREATE TABLE whereami (id INTEGER PRIMARY KEY, name TEXT UNIQUE, low INT AS (id<<32), high INT AS (id<<33)-1); INSERT INTO whereami (id, name) values (4711,'Cologne'); CREATE TABLE something (id INTEGER PRIMARY KEY AUTOINCREMENT, thing TEXT); INSERT INTO something SELECT low,'first record' from whereami where name = 'Cologne'; CREATE TRIGGER check_some BEFORE INSERT ON something BEGIN<br> SELECT RAISE(ROLLBACK,'table full') FROM whereami w, sqlite_sequence s WHERE w.name='Cologne' AND NEW.id between w.low and w.high AND s.name='something' and s.seq >= w.high;<br>END; INSERT INTO something VALUES (NULL, 'local record');<br> INSERT INTO something VALUES (1, 'foreign record');