All pastes #822461 Raw Edit

levity_island

public text v1 · immutable
·published 2007-12-18 19:17 UTC
rendered paste body
delimiter //
create procedure migrate_url_count_data()
begin
	declare current_url_id, current_url_count_id bigint;
	declare u char(150);
	declare uh char(32);
	declare si, code smallint;
	declare st datetime;
	declare h, c bigint;
	declare cur1 cursor for select url, url_hash, customer_site_id, stat_time, hits, completes from url_count;
	declare cur2 cursor for select url_hash, customer_site_id, stat_time, hits, code from url_count;
	declare exit handler for not found begin end;
		
	open cur1;
	loop
		fetch cur1 into u, uh, si, st, h, c;
		begin
			declare continue handler for not found
			begin
				set current_url_id = -1;
			end;
			-- create a row in url if it doesn't exist already, and get the row's id
			select id from url where hash=uh into current_url_id;
			if current_url_id = -1 then
				insert into url (url, hash) values (u, uh);
				set current_url_id = last_insert_id();
				insert into migration_log (info) values (concat('inside if: ',current_url_id));
			end if;
			insert into migration_log (info) values (current_url_id);
		end;		
		insert into url_count2 (site_id, url_id, stat_time, hits, completes) values (si, current_url_id, st, h, c);
	end loop;
	close cur1;
end;
//

-- looking at migration_log, as well as comparing the migrated and unmigrated data, last_insert_id() only changes after the loop ends