我有一张桌子(我无法控制),我必须复制。目标模式可以与原始模式相同,因此所有索引和约束都必须在没有名称的情况下隐式定义。在
我使用的是python3.4.3和SQLAlchemy 1.0.8和cx_oracle 5.2。在
桌子是这样的:CREATE TABLE "MY_TABLE"
( "ITEMID" NUMBER(*,0) NOT NULL ENABLE,
"LABEL" NVARCHAR2(80) NOT NULL ENABLE,
"FIRSTCHILDID" NUMBER(*,0) NOT NULL ENABLE,
"LASTCHILDID" NUMBER(*,0) NOT NULL ENABLE,
"DEFAULTPARENTID" NUMBER(*,0) NOT NULL ENABLE,
"PICTUREID" NUMBER(6,0) NOT NULL ENABLE,
"SECURITYID" NUMBER(*,0) NOT NULL ENABLE,
PRIMARY KEY ("ITEMID")
UNIQUE ("LABEL"));
由于以下错误而失败:sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError)
ORA-00955: name is already used by an existing object
[SQL: b'CREATE UNIQUE INDEX sys_c009016 ON "TMP_MY_TABLE" (label)']
创建索引时,由于创建索引的名称与当前表的名称相同,因此创建索引失败。在
我尝试在创建之前将索引名设置为None,以给SA一个提示,但这会导致错误,因为它始终需要一个字符串。在
有什么方法可以告诉SA立即将该死的UNIQUE子句附加到表DDL中吗?在