1
insert into user 
    (account_id, name, e_mail_addr)
select account_id, name, e_mail_addr
from user
where account_id='1';

id = id +1 で行をコピーして 100 回ループする方法。これは、2 から 100 までの ID を持つ 100 行を作成することを意味します。これを phpmyadmin で使用しています。

4

1 に答える 1

0

SQL プロシージャ:

drop procedure if exists user_clone;
delimiter #

create procedure user_clone()
begin

    declare u_max int unsigned default 100;
    declare u_counter int unsigned default 0;

    start transaction;
    while u_counter < u_max do
        INSERT INTO (name, e_mail_addr)
            SELECT name, e_mail_addr
            FROM user 
            WHERE account_id = 1;

        set u_counter=u_counter+1;
    end while;
    commit;
end #

delimiter ;

call user_clone();
drop procedure user_clone;
于 2013-05-22T10:42:52.620 に答える