Debugging 附加数据库的SQLite顺序是否重要?

Debugging 附加数据库的SQLite顺序是否重要?,debugging,sqlite,common-table-expression,Debugging,Sqlite,Common Table Expression,我将两个数据库(称为A和B)附加到SQLite的inmemory实例。 A较旧,例如有一个名为MAINVIEW的视图。 B是一个较新的视图,具有与现在使用CTE构建的名为相同方式MAINVIEW的相同视图(较新的SQLite版本,允许我这样做,而不是子选择) 如果我附加了第一个和第二个B,并尝试转储B.MAINVIEW,它将显示为空,A.MAINVIEW将按预期显示。 如果我先附加B,再附加一个B,这两个转储都会像预期的那样出现,其余我使用它们来查看视图、连接和排序 抽象描述,我知道,但我可以输

我将两个数据库(称为A和B)附加到SQLite的inmemory实例。 A较旧,例如有一个名为MAINVIEW的视图。 B是一个较新的视图,具有与现在使用CTE构建的名为相同方式MAINVIEW的相同视图(较新的SQLite版本,允许我这样做,而不是子选择)

如果我附加了第一个和第二个B,并尝试转储B.MAINVIEW,它将显示为空,A.MAINVIEW将按预期显示。 如果我先附加B,再附加一个B,这两个转储都会像预期的那样出现,其余我使用它们来查看视图、连接和排序

抽象描述,我知道,但我可以输入的代码不多,因为DBs是通过bash+sqlite构建的,这并不是最好的,事实上也很清楚

有人遇到过这种行为吗

关于如何以更好的方式调试它的任何提示(我不太了解.eqp在转储中的作用,但我可以根据请求发布给正确解密它们的任何人)

使用SQLite 3.7.10创建了旧数据库 使用SQLite 3.15.2创建了新的数据库

简化示例:

。数据库
.load./lib/libsqlitefunctions.so
分离数据库“103nd10”;
分离数据库“103nd14”;
将数据库“/sp001fe1/proj/5297/103nd10/SAVE/4D/sqlite/103nd10.db”附加为“103nd10”;
将数据库“/sp001fe1/tpa/103nd14/DATA/SQLite/103nd14.db”附加为“103nd14”;
.桌子
如果不存在临时视图,则创建临时视图
选择m0tvSP.ID作为SP\u ID
从“103nd10”。vSP作为btvSP
内部连接“103nd14”。在m0tvSP.ID==btvSP.ID上作为m0tvSP的vSP;
从vInteractive中选择COUNT(*);
数据库之后的输出:

序列名称文件


0主
2 103nd14/sp001fe1/tpa/103nd14/DATA/SQLite/103nd14.db
3 103nd10/sp001fe1/proj/5297/103nd10/SAVE/4D/sqlite/103nd10.db

表之后的输出:

103nd10.Edit_RCV 103nd10.vSP_端口

103nd10.vPerimeter_SP 103nd14.vSP

103nd10.v响应103nd14.v每周
103nd10.vSP

视图的行计数:

计数(*)
0

如果切换“附加数据库”,行计数将变为:

计数(*)
24340

即使我只尝试转储103nd14.vSP视图,我使用第一个顺序得到0。
这就是我发现103nd14数据库及其使用CTE的视图存在问题的原因。

因此,在两个DBs?Afirmative中都有同名的表。在这两个数据库中,表名和结构是相同的。事实上,我有更多的DBs可用相同的结构和顺序的附加似乎是唯一的事情,我可以联系到目前为止。请提供一份报告。