我正在嘗試用 Python 更新 PostgreSQL 中的一個表,但有些東西我不太明白。該表包含 5 個國家:
[(1,'Italy'), (2,'Poland'),(3,'South Korea'),(4,'Taiwan'),(5,'United States')]
當我更新表格時,比如說,用另一個國家(例如哈薩克斯坦)替換波蘭,索引將位置移到底部。所以現在你有:
[(1,'Italy'),(3,'South Korea'),(4,'Taiwan'),(5,'United States'),(2,'Poland')]
我也嘗試使用 ORDER BY,但后來出現語法錯誤。這是為什么?以及如何保持索引位置?
這是代碼:
def update_countries():
return ("""
UPDATE countries
SET country_name = 'Spain'
WHERE country_id = 5;
""")
conn = None
try:
conn = psycopg2.connect(
database = 'social',
user = 'postgres',
password = 'abc123',
host = 'localhost',
port = '5432')
cur = conn.cursor()
country_table = update_countries()
cur.execute(country_table)
print("[ ] Data updated successfully!")
conn.commit()
except (Exception, psycopg2.DatabaseError) as error:
print('{}[-] Failed to connect.'.format(error))
conn.rollback()
finally:
if conn is not None:
conn.close()
結果如下:

預先感謝您抽出時間提供幫助。
uj5u.com熱心網友回復:
創建表時,非常建議將其與indexing. 索參考于更快、更有序地從資料庫中檢索記錄。
索引可能會幫助您以特定的排序順序通過查詢回傳記錄(主鍵是建立索引的一種方法)。這允許ORDER BY在沒有單獨的排序步驟的情況下滿足查詢的規范。在 PostgreSQL 中可以回傳排序輸出的一種索引方法是B-Tree。
下面是創建索引的示例:
CREATE INDEX country_asc_index ON countries (country_id ASC);
參考:
[1] https://docs.microsoft.com/en-us/sql/t-sql/statements/create-index-transact-sql?view=sql-server-ver15
[2] https://www.postgresql.org/docs/current/indexes-ordering.html
uj5u.com熱心網友回復:
SQL 表沒有順序。如果在 SELECT 陳述句中沒有顯式 ORDER BY,您甚至不能保證兩個連續的 SELECT:s 之間的順序相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377535.html
上一篇:如何取NaN值之間的平均值?
