[英]peewee not using dynamic table name in select statement
為什么此處的select語句具有t1
而不是MyDynamicTable
?
from peewee import *
database = SqliteDatabase(None)
class Base(Model):
class Meta:
database = database
class MyTable(Base):
FieldA = TextField()
FieldB = TextField()
mytable = type('MyDynamicTable', (MyTable,), {})
database.init('test.db')
mytable.select()
導致:
>>> mytable.select()
<class 'peewee.MyDynamicTable'> SELECT "t1"."id", "t1"."FieldA", "t1"."FieldB" FROM "mydynamictable" AS t1 []
但是這個名字是正確的:
>>> mytable
<class 'peewee.MyDynamicTable'>
>>> mytable._meta.db_table
'mydynamictable'
Peewee為您的表名加上了別名。 如果您閱讀完整的查詢:
SELECT "t1"."id", "t1"."FieldA", "t1"."FieldB"
FROM "mydynamictable" AS t1
“ mydynamictable” AS t1部分將表名別名為“ t1”,以使查詢更緊湊。 當您有聯接並且需要消除具有相同名稱的列的歧義時,這一點尤其重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.