为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8
【操作系统】:centos 7
【CPU】:
【问题描述】*:
执行下面语句,添加约束失败
CREATE TABLE "T_REALORDERTRADEDETAIL"
(
"ID" NUMBER(38,0) NOT NULL,
"TRADEOBJID" NUMBER(38,0) NOT NULL,
"BROKERID" VARCHAR2(128) NULL,
"INVESTORID" VARCHAR2(128) NOT NULL,
"INSTRUMENTID" VARCHAR2(128) NOT NULL,
"ORDERREF" VARCHAR2(32) NULL,
"USERID" VARCHAR2(128) NULL,
"EXCHANGEID" VARCHAR2(32) NOT NULL,
"TRADEID" VARCHAR2(64) NULL,
"DIRECTION" CHAR(1) NOT NULL,
"ORDERSYSID" VARCHAR2(64) NOT NULL,
"PARTICIPANTID" VARCHAR2(128) NULL,
"CLIENTID" VARCHAR2(128) NULL,
"TRADINGROLE" CHAR(1) NULL,
"EXCHANGEINSTID" VARCHAR2(32) NULL,
"OFFSETFLAG" CHAR(1) NOT NULL,
"HEDGEFLAG" CHAR(1) NULL,
"PRICE" NUMBER NOT NULL,
"VOLUME" NUMBER(38,0) NOT NULL,
"TRADEDATE" VARCHAR2(9) NOT NULL,
"TRADETIME" VARCHAR2(9) NOT NULL,
"TRADETYPE" CHAR(1) NULL,
"PRICESOURCE" CHAR(1) NULL,
"TRADERID" VARCHAR2(64) NULL,
"ORDERLOCALID" VARCHAR2(13) NULL,
"CLEARINGPARTID" VARCHAR2(11) NULL,
"BUSINESSUNIT" VARCHAR2(21) NULL,
"SEQUENCENO" NUMBER(38,0) NULL,
"TRADINGDAY" NUMBER(38,0) NOT NULL,
"SETTLEMENTID" NUMBER(38,0) NULL,
"BROKERORDERSEQ" NUMBER(38,0) NULL,
"COMMISSION" NUMBER DEFAULT 0
NULL,
"CLOSEPROFIT" NUMBER DEFAULT 0
NULL,
"CLOSEPROFIT2" NUMBER DEFAULT 0
NULL
);
ALTER TABLE "T_REALORDERTRADEDETAIL" ADD CONSTRAINT "CONS134219922" UNIQUE("TRADEOBJID","TRADEID","EXCHANGEID","TRADINGDAY","ORDERSYSID") ;
报错如下:
[执行语句1]:
ALTER TABLE "T_REALORDERTRADEDETAIL" ADD CONSTRAINT "CONS134219922" UNIQUE("TRADEOBJID","TRADEID","EXCHANGEID","TRADINGDAY","ORDERSYSID") ;
执行失败(语句1)
-2109: 第1 行附近出现错误:
无效的约束名[CONS134219922]
解决:
ALTER TABLE "T_REALORDERTRADEDETAIL" ADD CONSTRAINT "CONS134219922" UNIQUE("TRADEOBJID","TRADEID","EXCHANGEID","TRADINGDAY","ORDERSYSID") ;
将该语句中的 "CONS134219922" 改为 "CONS13421992" 即可执行成功。
请问是否有数据库参数可以解决该报错呢?该脚本在其他达梦数据库上执行不会报错
SELECT ID_CODE;麻烦您提供一下数据库版本
滴滴
select * from DBA_OBJECTS where object_name='CONS134219922'
查一下数据库里面是不是已经有同名的约束了