![](/img/trans.png)
[英]Unsuccessful attempt to use .destroy() to wipe data results from GUI
[英]Does <CassandraResult>.all() wipe data on use, while using Cassandra in Python?
表格內容,
# Insert stuff into the table
query = 'insert into music_lib (year, artist_name, album_name) values (%s, %s, %s)'
try:
session.execute(query, (2010, 'Linkin Park', 'A Thousand Suns'))
session.execute(query, (2012, 'Linkin Park', 'Living Things'))
except Exception as e:
print(e)
我的查詢是這樣的,
try:
rows = session.execute('SELECT * FROM MUSIC_LIB')
except Exception as e:
print(e)
當我第一次執行rows.all()
時,我得到了結果,
[Row(year=2010, artist_name='Linkin Park', album_name='A Thousand Suns'),
Row(year=2012, artist_name='Linkin Park', album_name='Living Things')]
但是當我再次執行rows.all()
時,我得到一個空白 output, []
調用 rows.all() 時數據是否會被擦除?
當您執行session.execute
時,它會返回ResultSet
object ,即從 Cassandra 接收到的數據的迭代器,這些結果是分頁的。 但是數據並沒有存儲在memory中用於隨機訪問,所以當你迭代時,你會跳到下一條記錄,並且可能不會返回到上一條。
當您調用all
(對於大數據集來說很危險)時,它基本上是在調用list(result_set)
,在內部對所有行執行迭代。 但是當你第二次調用它時,迭代器已經用完了,你會收到空列表。 為防止這種情況,您需要將第一次調用all
結果保存在某處。
我通過入門文檔向 go 推薦,並閱讀最佳實踐,例如使用准備好的語句等。另外,請注意表中的select * from table
是 Z7BFCC746DD3AE3853C4F0EF95ZE 的反模式足夠大的數據集。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.