[英]Adding, removing, and comparing values to column with Python SQLAlchemy
SQLAlchemy 社區,數據庫中的新手,特別是 sqlalchemy 在這里尋求您的幫助。 正如人們所期望的那樣,我的數據庫由行和列組成。 每一行是關於一個獨特的人的信息。 每個人都有多個列(出生日期、姓名、姓氏、以前的登錄日期等)。對於這些列之一(以前的登錄日期),我想在一個單元格中存儲多個值。 換句話說,我希望能夠存儲最后一個,比如說十個登錄日期,並且能夠像在 python 中操作列表一樣操作這些日期。 我希望能夠append新登錄日期到此單元格,從單元格中刪除項目,並訪問單元格的特定索引。 基本上我的手機想要這樣的東西
{"04042020","04052020","04072020"}
我的數據庫看起來像這樣
Name | Last Name | Last Log in dates
------------------------------------------------------------
Edgar | Allen | {"04042020","04052020","04072020"}
Dimitri | Albertini | {"12042019","10112019","01072020"}
我知道 sqlalchemy 有一種將 ARRAYs 與
from sqlalchemy.dialects.postgresql import ARRAY
經過一番努力,我只能創建一個數組,但我無法找到一種操作(追加、刪除、訪問)數組的方法。 這是一個簡單的原型,它創建了一個只有一列的表,第一行的元素等於 {1,2,3}。
from sqlalchemy import create_engine
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.dialects.postgresql import ARRAY
engine = create_engine('postgresql://rouzbeh:tiger@localhost/newtable')
metadata = MetaData()
newtable = Table("newtable", metadata,
Column("data", ARRAY(Integer))
)
metadata.create_all(engine)
connection = engine.connect()
connection.execute(newtable.insert(),data=[1,2,3])
Postgress postico 中的 Output 類似於以下屏幕截圖。 再次重申,我希望能夠訪問元素( {1,2,3}
)並通過刪除或添加元素來操作它們。 ( {1,2,3,4}
) 或 ( {1,2}
)
對於類似的用例,我存儲了 JSON 等數據。 看看這個 SO 帖子。 這個想法是將 JSON 轉儲為 TEXT(或 JSON object,如果您的數據庫支持此)。
對於更復雜的結構,我使用Marshmallow 。 它對嵌套結構特別有用。
然而,這種做法是有爭議的。 請參閱此 SO 帖子和此 Quora 討論。 如果您可以忍受缺點,那么這是一種存儲數據的簡單方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.