2011-12-20 6 views
0

330 +レコードを挿入する私のプロシージャから重複レコードを取得します。 しかし最後のレコードでのみ。つまり、最後の2つのレコードは区別されません。同じレコードです。最後のレコードが重複することを可能にするこの手順については何ですか。最後のレコードでのみ重複レコードを挿入するのはなぜですか?

DELIMITER $$ 

DROP PROCEDURE IF EXISTS `zzExclude_Products` $$ 
CREATE DEFINER=`root`@`%` PROCEDURE `zzExclude_Products`() 
BEGIN 

DECLARE done INT DEFAULT 0; 
DECLARE VAR_ENTITY_ID VARCHAR(50); 

DECLARE CUR_NO CURSOR FOR 

SELECT DISTINCT NO 
FROM stage_product_data.ITEMMAST AS IM 
JOIN stage_product_data.zzLive_Products AS LIVE ON IM.NO = LIVE.SKU 
WHERE DIVISION = '30' AND STATUS NOT IN ('XX','YY','ZZ'); 


DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; 

OPEN CUR_NO; 
REPEAT 

FETCH CUR_NO INTO VAR_ENTITY_ID; 
INSERT INTO zz_CATALOG (TYPE, ENTITY_ID, ESTRICTION_TYPE, RESTRICTION_VALUE) 
VALUES ('Product', VAR_ENTITY_ID, 'Country', 'ALL'); 

UNTIL done END REPEAT; 
CLOSE CUR_NO; 

END $$ 

DELIMITER ; 

答えて

2

実際にはカーソルは必要ありません。これは、単一のINSERTステートメントで実行できます。

INSERT INTO zz_CATALOG 
    (TYPE, ENTITY_ID, ESTRICTION_TYPE, RESTRICTION_VALUE) 
    SELECT DISTINCT 'Product', EDPNO, 'Country', 'ALL' 
     FROM stage_product_data.ITEMMAST AS IM 
      JOIN stage_product_data.zzLive_Products AS LIVE 
       ON IM.EDPNO = LIVE.SKU 
     WHERE DIVISION = '30' 
      AND STATUS NOT IN ('XX','YY','ZZ'); 
0

挿入するデータには手順があり、重複していませんか?

+0

私はそれを確認しましたが、私はルックアップテーブルにドゥープを持っていません。 – JoJo

関連する問題