Well, this looks like deferred to me, no? ``` C:\Users\ddevienne>sqlite3 SQLite version 3.33.0 2020-08-14 13:23:32 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> create table tag (id integer primary key, name text, parent integer references tag (id), UNIQUE(parent, name)); sqlite> begin; sqlite> insert into tag values (1, "leaf", 0); sqlite> insert into tag values (0, "root", null); sqlite> commit; sqlite> select * from tag order by id; 0|root| 1|leaf|0 sqlite> ``` Update: Rah, I always forget about `pragma foreign_keys = 1;` !!! So you are right indeed. My bad! ``` C:\Users\ddevienne>sqlite3 SQLite version 3.33.0 2020-08-14 13:23:32 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> pragma foreign_keys = 1; sqlite> create table tag (id integer primary key, name text, parent integer references tag (id), UNIQUE(parent, name)); sqlite> begin; sqlite> insert into tag values (1, "leaf", 0); Error: FOREIGN KEY constraint failed ```