I think I'd be inclined to have it give the error first rather than rename it. But that's just me.
If you need to recover, you can do it with pragma writable_schema to delete the line from sqlite_master. D:\Temp>sqlite3 SQLite version 3.25.1 2018-09-18 20:20:44 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> attach database 'DeleteMe.sqlite' as att; sqlite> create table att.a_table (id integer primary key, foo text); sqlite> insert into a_table values (1, 'In attached table'); sqlite> create view att.a_view as select * from att.a_table; sqlite> select * from a_view; id|foo 1|In attached table sqlite> .exit D:\Temp>sqlite3 DeleteMe.sqlite SQLite version 3.25.1 2018-09-18 20:20:44 Enter ".help" for usage hints. sqlite> .tables Error: malformed database schema (a_view) - view a_view cannot reference objects in database att sqlite> select * from sqlite_master; Error: malformed database schema (a_view) - view a_view cannot reference objects in database att sqlite> pragma writable_schema = on; sqlite> select * from sqlite_master; type|name|tbl_name|rootpage|sql table|a_table|a_table|2|CREATE TABLE a_table (id integer primary key, foo text) view|a_view|a_view|0|CREATE VIEW a_view as select * from att.a_table sqlite> drop view a_view; Error: no such view: a_view sqlite> delete from sqlite_master where name = 'a_view'; sqlite> pragma writable_schema = off; sqlite> .tables a_table sqlite> -----Original Message----- From: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] On Behalf Of Jonathan Moules Sent: Tuesday, September 25, 2018 11:55 AM To: SQLite mailing list Subject: [sqlite] Attachments and Views - suggested tweak Hi List, I just caught myself in a little circle and accidentally created a semi-invalid database. I was wondering if it's something SQLite's query parser could self-resolve / alert about. Attach a database as "my_attachment" schema name, and then run: CREATE VIEW my_attachment.a_view AS SELECT * FROM my_attachment.a_table; If you now disconnect from the database and then re-attach it, this time attaching it as "hello_world" schema name, SQLite will fail to attach it and give this error: malformed database schema (a_view) - view a_view cannot reference objects in database my_attachment I understand that I've been "over-specific" in my SQL, but could not the query-parser strip off the schema name from the select statement in the view given it's clearly meant to be self-referential. Or alternatively give a warning/error at creation time if specifying schema names inside of Views that are not TEMP given they're unnecessary for such views. The former would self-solve the problem, the later would provide transparency and stop you accidentally creating invalid schemas that seem valid at the time. Cheers, Jonathan _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users