注册

同一sql脚本,在不同dm数据库上执行结果不同

ThinkDifference 2023/08/17 700 7 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【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" 即可执行成功。
请问是否有数据库参数可以解决该报错呢?该脚本在其他达梦数据库上执行不会报错

回答 0
暂无回答
扫一扫
联系客服