Python 为什么spatialite在我不更改行的情况下返回不正确的total_changes()?
您可以在此处阅读有关总变更的信息: 我在使用python接口创建spatialite-pyspatialite时看到了这个问题,但可以使用windows spatialite.exe重现这个问题。请注意spatialite.exe total_的变化并不像预期的那样为0,并且随着每个select语句的增加而增加-奇怪。它应该只增加更新、插入和删除。还要注意,sqlite做得很对。有什么建议吗Python 为什么spatialite在我不更改行的情况下返回不正确的total_changes()?,python,sqlite,spatialite,Python,Sqlite,Spatialite,您可以在此处阅读有关总变更的信息: 我在使用python接口创建spatialite-pyspatialite时看到了这个问题,但可以使用windows spatialite.exe重现这个问题。请注意spatialite.exe total_的变化并不像预期的那样为0,并且随着每个select语句的增加而增加-奇怪。它应该只增加更新、插入和删除。还要注意,sqlite做得很对。有什么建议吗 C:\crs\bde2>spatialite test6.db SpatiaLi
C:\crs\bde2>spatialite test6.db
SpatiaLite version ..: 4.2.0 Supported Extensions:
- 'VirtualShape' [direct Shapefile access]
- 'VirtualDbf' [direct DBF access]
- 'VirtualXL' [direct XLS access]
- 'VirtualText' [direct CSV/TXT access]
- 'VirtualNetwork' [Dijkstra shortest path]
- 'RTree' [Spatial Index - R*Tree]
- 'MbrCache' [Spatial Index - MBR cache]
- 'VirtualSpatialIndex' [R*Tree metahandler]
- 'VirtualXPath' [XML Path Language - XPath]
- 'VirtualFDO' [FDO-OGR interoperability]
- 'VirtualGPKG' [OGC GeoPackage interoperability]
- 'VirtualBBox' [BoundingBox tables]
- 'SpatiaLite' [Spatial SQL - OGC]
PROJ.4 version ......: Rel. 4.8.0, 6 March 2012
GEOS version ........: 3.4.2-CAPI-1.8.2 r3921
LWGEOM version ......: 2.1.3
TARGET CPU ..........: mingw32
SQLite version ......: 3.8.5
Enter ".help" for instructions
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
spatialite>
spatialite>
spatialite> SELECT total_changes() AS 'Total changes';
1
spatialite> SELECT total_changes() AS 'Total changes';
3
spatialite> .quit
C:\crs\bde2>sqlite3 test6.db
SQLite version 3.8.7 2014-10-17 11:24:17
Enter ".help" for usage hints.
sqlite>
sqlite> select total_changes() as 'Total changes';
0
sqlite> select total_changes() as 'Total changes';
0
报告说:
sqlite3_total_changes返回的计数包括来自所有上下文的所有更改和由所做的更改
SpatiaLite使用大量触发器和运行SQL命令的用户定义函数。反馈良好。在这个例子中,我只做了一个选择。触发器仅在更新、插入和删除时可用。外键操作仅在更新和删除时进行。那么,SELECT如何创建更改呢?或者可能还有更多?要么total_changes被重新定义,要么spatialite.exe做了一些其他事情。有人重现了上述结果吗?