注册

海光CPU select delete 达到一定数量的OR之后,OR失效,delete会删除该表所有数据

guitarsoft 2025/07/23 250 1 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 达梦for海光 dm8_20240930_HG_kylin10_64.zip dm8_20250423_HG_kylin10_64.zip
【操作系统】:kylin10
【CPU】:海光
【问题描述】*: 达到一定数量的OR之后,OR失效

--建表
CREATE TABLE MDM_MODEL_EXT (ID BIGINT,CODE VARCHAR2(100),NAME VARCHAR2(4000));

--插入90000行数据的过程
CREATE OR REPLACE PROCEDURE insert_random_data
IS
v_cnt bigINT := 1563786712500000;
BEGIN
WHILE v_cnt < 1563786712590000 LOOP
INSERT INTO MDM_MODEL_EXT (id, code, name)
VALUES (
v_cnt + 1, -- ID自增
DBMS_RANDOM.STRING('U', 80), -- 随机大写字符串(长度10)
DBMS_RANDOM.STRING('U', 3700) -- 随机大写字符串(长度10)
);
v_cnt := v_cnt + 1;

-- 每1000条提交一次,避免事务过大
IF MOD(v_cnt, 1000) = 0 THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END;

--插入数据
CALL insert_random_data();

--查出8万个id
select 'id = ' || id || ' or' from MDM_MODEL_EXT where id <= 1563786712580000

--删除8万个id 实际会删除该表的9万行数据
delete from MDM_MODEL_EXT where (id = 1563786712500001 or
id = 1563786712500002 or
id = 1563786712500003 or
id = 1563786712500004 or
id = 1563786712500005 or ......);

select count(*) from MDM_MODEL_EXT

--

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