有没有办法用 SQLAlchemy 在 Teradata table 上创建主索引?
Is there a way to create primary index on Teradata table with SQLAlchemy?
使用 SQLAlchemy 创建 Teradata volatile table 时,我似乎无法创建索引。
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 中,似乎有效
关键字以方言名称开头。
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 table,而是正常(永久)table。
使用 SQLAlchemy 创建 Teradata volatile table 时,我似乎无法创建索引。
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 中,似乎有效
关键字以方言名称开头。
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 table,而是正常(永久)table。