使用SQLAlchemy创建Teradata易失表时,我似乎无法创建索引。
import teradatasqlalchemy
import sqlalchemy as db
from teradatasqlalchemy import DATE, FLOAT
from teradatasqlalchemy.dialect import TDCreateTablePost as post
#from teradatasqlalchemy.compiler import TDCreateTablePost as post
from sqlalchemy.sql.schema import Table, Column
from sqlalchemy.schema import CreateTable
td_engine = db.create_engine('teradatasql://edwprod/?logmech=ldap&user=xxxx&password=yyyy')
metadata = db.MetaData()
temp_table = db.Table(
"temp_table",
metadata,
Column("calndr_dt", DATE),
Column("records", FLOAT),
teradata_post_create=post().primary_index(unique=True, cols=["calndr_dt"]),
extend_existing=True,
)
print(CreateTable(temp_table).compile(td_engine))
print()语句的结果,该结果似乎不包括主索引:
CREATE TABLE temp_table (
calndr_dt DATE,
records FLOAT
)
包装:
SQLAlchemy 1.3.16
teradatasql 16.20.0.60
teradatasqlalchemy 16.20.0.8
在previous versions中,似乎可以正常工作
答案 0 :(得分:1)
关键字以方言名称开头。
temp_table = db.Table(
"temp_table",
metadata,
Column("calndr_dt", DATE),
Column("records", FLOAT),
teradatasql_post_create=post().primary_index(unique=True, cols=["calndr_dt"]),
extend_existing=True,
)
请注意,这实际上不是VOLATILE表,而是普通(永久)表。