create table key_table(key_value varchar(256) not null, primary key (key_value), unique key(key_value));
DROP function if exists generate_alpha;
CREATE FUNCTION generate_alpha () RETURNS CHAR(1) RETURN ELT(FLOOR(1 + (RAND() * (19-1))), 'A','B','C','D','E','F','G','H','K','L',
И вуаля. Генератор серийников готов.
делаем сколько надо
insert into key_table values(concat(generate_alpha (),generate_alpha (),generate_alpha (),generate_alpha (),"-",generate_alpha (),generate_alpha (),generate_alpha (),generate_alpha (),"-",generate_alpha (),generate_alpha (),generate_alpha (),generate_alpha (),"-",generate_alpha (),generate_alpha (),generate_alpha (),generate_alpha ()));
остальное - по вкусу.