2010-12-03 9 views
3

を問い合わせるのは、私はすべての結果セットをループすることをポイントした後、コード違いは

cursor = connection.cursor() 
cursor.execute(query) 

を以下しているとしましょう。最初のものはfetchoneの方法を使用していることが推測

for row in cursor: 
    print row[0] 


for row in cursor.fetchall(): 
    print row[0] 

I 

午前の違いは何であるか

1)最初のクエリはすべての繰り返しでクエリを実行しますか? 2)fetchoneメソッドまたはfetchallメソッドを使用しています 3)大きな結果セットの方が良いですか?

答えて

2

カーソルを反復する機能は、PEP 249で定義されているオプションの拡張であり、正確なセマンティクスは使用されているデータベースアダプタによって異なります。

+0

これをdebugsqlshellで確認しましたが、cursor.executeメソッドでクエリを実行しているようです。 (postgresqlで試してみた) – yilmazhuseyin