Another variation, without "if not exists if": SQLite version 3.34.0 2020-10-20 14:40:53 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> AtTach cuRreNt_daTe AS 'MM' ; sqlite> CREatE temp TrIGGeR if nOt eXists V DeleTe on V when upper ( * ) begiN seLect * ; enD ; sqlite> CrEATe vIEw if nOt eXIsTs v as sELecT * ; sqlite> cReaTE ViRtUal tAblE aaaaaa uSiNg 'kk' ; Error: no such module: kk sqlite> select aaa from bbbbbbb; Error: malformed database schema (V) - cannot create BEFORE trigger on view: V sqlite> CREATE TABLE Persons (PersonID int, LastName varchar(255)); Error: malformed database schema (V) - cannot create BEFORE trigger on view: V