为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:8 【操作系统】:麒麟 【CPU】:4核 【问题描述】*:我在做定时插入时,发现当自动切换分区时,就是从三月数据分区切到四月数据分区时,自增列ID IDENTITY(1,1)出现了问题,四月分区插入第一条数据后,IDENTITY本身没有执行+1操作,而是保持跟第一条数据的ID一致,导致后面出现唯一性约束问题,数据插不进去。这是为什么呢?是达梦本身就存在这个问题,还是说建表语句哪里不对呢?
CREATE TABLE ODS_VEHICLE_GNSS_HISTORY ( "ID" BIGINT IDENTITY(1,1) NOT NULL, "DATASHARE_XH" INT, "VEHICLEGPSID" VARCHAR(64), "SERVERID" VARCHAR(20), "VEHICLENUM" VARCHAR(50), "PLATECOLOR" VARCHAR(10), "LONGITUDE" DECIMAL(10,7), -- 经度,精度10位,小数7位 "LATITUDE" DECIMAL(10,7), -- 纬度,精度10位,小数7位 "SPEED" DECIMAL(8,2), -- 速度,保留2位小数 "ALTITUDE" DECIMAL(10,2), -- 海拔高度,保留2位小数 "DIRECTION" DECIMAL(6,2), -- 方向角,保留2位小数 "RECORDTIME" DATETIME(6), "CREATETIME" DATETIME(6), "DRIVINGSPEED" DECIMAL(8,2), -- 行驶速度,保留2位小数 "TOTALMILEAGE" DECIMAL(12,2), -- 总里程,保留2位小数 "STATE" INT, "ALARM" INT, "XZQH_DM" VARCHAR(20), "XZQH_MC" VARCHAR(100), "WAYBILL_NUM" VARCHAR(50), CONSTRAINT PK_ODS_GNSS_HISTORY_NEW1 PRIMARY KEY ("ID") ) PARTITION BY RANGE (RECORDTIME) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH')) ( PARTITION P_START VALUES LESS THAN (TIMESTAMP '2026-01-01 00:00:00') );
CREATE TABLE ODS_VEHICLE_GNSS_HISTORY (
"ID" BIGINT IDENTITY(1,1) NOT NULL,
"DATASHARE_XH" INT,
"VEHICLEGPSID" VARCHAR(64),
"SERVERID" VARCHAR(20),
"VEHICLENUM" VARCHAR(50),
"PLATECOLOR" VARCHAR(10),
"LONGITUDE" DECIMAL(10,7), -- 经度,精度10位,小数7位
"LATITUDE" DECIMAL(10,7), -- 纬度,精度10位,小数7位
"SPEED" DECIMAL(8,2), -- 速度,保留2位小数
"ALTITUDE" DECIMAL(10,2), -- 海拔高度,保留2位小数
"DIRECTION" DECIMAL(6,2), -- 方向角,保留2位小数
"RECORDTIME" DATETIME(6),
"CREATETIME" DATETIME(6),
"DRIVINGSPEED" DECIMAL(8,2), -- 行驶速度,保留2位小数
"TOTALMILEAGE" DECIMAL(12,2), -- 总里程,保留2位小数
"STATE" INT,
"ALARM" INT,
"XZQH_DM" VARCHAR(20),
"XZQH_MC" VARCHAR(100),
"WAYBILL_NUM" VARCHAR(50),
CONSTRAINT PK_ODS_GNSS_HISTORY_NEW1 PRIMARY KEY ("ID")
)
PARTITION BY RANGE (RECORDTIME)
INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION P_START VALUES LESS THAN (TIMESTAMP '2026-01-01 00:00:00')
);