У меня 100 строк в таблице tbl_master_sales
и пустая таблица tbl_customer_sales
.Когда я использую While Loop для вставки данных из tbl_master_sales
к tbl_customer_sales
, он вставляет только 50 rows.However, он должен иметь вставку 100 строк, принимая две итерации, а loop.What может быть моя ошибка в следующем порядке:время цикла не работает, как предполагалось в процедуре тузд
CREATE PROCEDURE ROWPERROW()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
SELECT COUNT(*) FROM tbl_master_sales INTO n;
SET i=0;
WHILE i<n DO
INSERT INTO tbl_customer_sales (id,card_number,customer_name,customer_phone,bill_no,item_code,division,section,department,item_name,store,promo_name,billdiscount_name,billqty,promo_amount,bill_discount_amount,loyaltyamount,net_amount)
SELECT id, card_number, customer_name, customer_mobile, billno, itemcode, division, section, department, itemname, store, promoname, billdiscountname, billqty, promoamount, billdiscountamount, loyaltyamount, netamount
FROM tbl_master_sales
WHERE NOT EXISTS(SELECT 1
FROM tbl_customer_sales
WHERE id=tbl_master_sales.id)
LIMIT i,50;
SET i = i + 50;
END WHILE;
End;;
да я использую НЕ СУЩЕСТВУЕТ часть для избежания duplication.I нужна эта часть тоже, и нужно вставить 50 записей каждый за iteration.Actually я использовал курсор на него и раньше, но у него есть проблемы с производительностью, и, когда я использую INSERT. ..SELECT, чтобы вставить данные, которые он вставляет в единый массив, который висит всего mysql для миллионов данных. Однако мне нужна процедура, которая вставляет около 1000 строк в секунду и не зависает mysql. Как я могу это сделать? Есть идеи? – Sumit