擅长:python、mysql、java
<p>实际上,问题似乎来自于PostgreSQL中视图的存在方式。创建物化视图似乎解决了我的问题。如果有人能解释的话,那就太好了。在</p>
<p>如果这对任何人都有帮助,下面是我的新代码版本:</p>
<pre><code>import os, psycopg2
conn = psycopg2.connect("dbname=db_name user=postgres")
cur = conn.cursor()
cur.execute("create materialized view temp as select st_setsrid(the_geom::geometry,2154), table1.gid from tout.area, public.table1 where (st_contains(area.geom,st_setsrid(table1.the_geom::geometry,2154))); select count(*) from temp")
nbtotal = cur.fetchone()[0]
print(nbtotal)
for i in range(nbtotal):
print(i+1, " sur ", nbtotal)
cur.execute ("insert into tout.table2 (geom) select st_setsrid FROM temp order by gid limit 1 offset "+str(i)+ ";")
cur.execute("drop materialized view temp;")
conn.commit()
</code></pre>