SQLAlchemy func 淺解與日期格式
使用 SQLAlchemy 的時候,用到日期格式時都不免要查詢如何使用,因此將使用方法乾脆記錄下來,並且將有疑問的地方也給一併釐清。
Posted on Apr 8, 2020 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
使用 SQLAlchemy 的時候,用到日期格式時都不免要查詢如何使用,因此將使用方法乾脆記錄下來,並且將有疑問的地方也給一併釐清。
Posted on Apr 8, 2020 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
子查詢(subquery)是使用 SQL 查詢經常會使用的技巧之一,不過各家 ORM(Object-relational mapping) 並沒有共通的實作標準,因此 subquery 的使用方法不一定會相同,這大概是使用 ORM 所必須面對的問題。
本篇紀錄 SQLAlchemy 中如何使用 subquery 以及 subquery 的 JOIN 範例。
Posted on Mar 11, 2020 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
在產品開發時,有時候會有將所有的資料表進行清空的需求,如果是用 SQLAlchemy 清空單一資料表也很簡單,但如果在多個資料表都有用到 FOREIGN KEY 就很容易遇到 IntegrityError
,原因在於如果有其他紀錄(record)關聯到程式正在刪除的紀錄(record)時,就會導致那些紀錄違反 FOREIGN KEY Constraint
無法刪除成功。
本篇記錄如何忽視 FOREIGN KEY Constraint
強制刪除所有資料表。
Posted on Aug 4, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
本文記錄幾種與 SELECT DISTINCT
相同作用的 SQLAlchemy 寫法。
Posted on Jul 12, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 1 min read
Connection Pool 是資料庫連線管理的機制,用來節省資料庫連線的成本,達到較高的資源利用效益。 Connection Pool 會事先與資料庫一次建立多個連線(connection),並維持住這些連線,每當應用程式(Application)需要操作資料庫時,就會從 Connection Pool 中提供(checkout)連線給應用程式使用。
但是資料庫連線也有斷線的可能,那麼要如何確保從 Connection Pool 取得的連線是可用的呢?
其中一種確定連線可用的機制就是 Pre-ping 。
本文就來談談 Pre-ping 與 SQLAlchemy 的 Pre-ping 如何設定。
Posted on Jun 5, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
SQLAlchemy ORM(Object-Relational Mapping)利用 relationship() 將多個 Model 關聯在一起,讓我們直接用存取屬性方式,直接就能夠使用被關聯的 model ,使用起來十分方便。
但是 SQLAlchemy ORM 的 relationship()
預設使用一種稱為 lazy loding
的技術,如果不了解其原理的話,很容易會有 n+1 query
的問題。
本文將簡單地談談 SQLAlchemy relationship()
。
Posted on Jun 1, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 3 min read
SQLAlchemy 是 Python 生態系中相當成熟的 ORM(Object Relational Mapper) 套件,不過也因為支援相當多功能,所以經常要翻閱文件查詢 SQL 中相應的功能要如何撰寫。
本篇紀錄如何使用 SQLAlchemy 撰寫含有 IN
與 NOT IN
語句的 ORM.
Posted on Mar 24, 2019 in Python 模組/套件推薦 by Amo Chen ‐ 2 min read
越是使用 SQLAlchemy 就會越是發現 SQLAlchemy 在 Python ORM 的用心,例如 Mixin and Custom Base Classes 讓我們能夠將常見的資料庫欄位或者功能放在一起,變成 Mixin 類別(class) ,只要繼承該 Mixin 就能夠獲得相同的欄位與功能,減少重複的程式並提高可維護性( Djano 的 view 也有類似的作法,詳見 Using mixins with class-based views )。
Posted on Dec 8, 2018 in Python 模組/套件推薦 by Amo Chen ‐ 1 min read