如何使用ORM創建表聲明式類沒有主鍵? 如果我沒有製作任何列primary_key = True
,它就無法啓動。SQLAlchemy聲明式:沒有任何主鍵的表?
回答
SQLAlchemy核心不會抱怨缺少主鍵,因此可以使用Table(…)
創建此類表。但是,按設計ORM需要一種方法來標識與對象相對應的行,因此無法在ORM中使用沒有主鍵的表。
爲什麼您需要稍後添加此索引?這是真正的要求還是試圖解決一些可能以其他方式解決的問題?如果您需要複合主鍵,可以使用幾個Column
中的primary_key=True
參數或__table_args__
中的指定PrimaryKeyConstraint(…)
來定義它。
我打算創建一個多列索引。如果我可以明確聲明索引必須使用BTREE(我的數據庫是MySQL)來構造,那將是非常好的。任何解決方案 – Determinant
大多數數據庫(包括MySQL)默認使用B-Tree,所以只需在所有參與組合索引的Column中指定'primary_key = True'。 'Index(...)'支持顯式B-Tree(或其他類型)規範,例如用於PostgreSQL,但不適用於MySQL,不適用於'PrimaryKeyConstraint'。看起來像SQLAlchemy中缺少的功能。 –
您還可以將「primary_key」參數中的「primary」列的列表放到mapper()中,並聲明爲'__mapper_args__ = {「primary_key」:(col1,col2)}}' – zzzeek
- 1. 在插入SQLAlchemy(聲明式)時處理重複的主鍵
- 2. sqlalchemy ORM:如何聲明一個包含多列主鍵的表類?
- 3. MySQL主鍵聲明
- 4. 如何使用SQLAlchemy定義沒有主鍵的表?
- 5. sqlalchemy ORM:如何聲明一個包含多個鍵的表類?
- 6. sqlalchemy中有沒有解決方法,用於從數據庫加載沒有任何主鍵的表?
- 7. MinGW和「聲明沒有聲明任何東西」
- 8. 警告:聲明沒有聲明任何東西
- 9. Rails 3.0.5 belongs_to關聯沒有更新聲明類中的主鍵
- 10. SQLAlchemy Automap不爲沒有主鍵的表創建類
- 11. Python sqlalchemy:沒有主鍵和重複值的表?
- 12. 聲明式SQLAlchemy中的標記詞典?
- 13. 聲明式類的SQLAlchemy反省
- 14. 更新聲明對我的表沒有任何影響
- 15. 表沒有主鍵
- 16. 通過另一個聲明的sqlalchemy關係(聲明式)
- 17. SqlAlchemy遷移聲明
- 18. Django沒有分配任何主鍵
- 19. 有沒有我們沒有任何主鍵的情況?
- 20. 沒有主鍵的表格
- 21. 沒有主鍵的Rails表
- 22. SQLAlchemy的和連接,我們沒有任何外鍵
- 23. SQLAlchemy聲明式。指定列選擇
- 24. SQLAlchemy惰性聲明式繼承
- 25. 加入聲明/主鍵和外鍵
- 26. 沒有var關鍵字聲明變量
- 27. 導航屬性沒有聲明外鍵
- 28. plsql過程比較沒有任何主鍵列的兩個表
- 29. 在表中沒有任何索引的主鍵?
- 30. 沒有任何顯式聲明樣式的嵌套HTML元素的CSS特性
請問,你爲什麼要這麼做? –
@JonathanOng因爲我想稍後添加一些索引,並且似乎mysql可以做這樣的事情。 – Determinant