Hola 60NZ4,
No has dado muchos datos para poder resolver el problema en condiciones, pero supongo que habrá una FK entre clientes y tiendas. Esto ya complica un poco el asunto porque primero deben estar los clientes para poder añadir las tiendas, por lo que serán 2 instrucciones las que tengas que meter manualmente.
Te dejo el código.
Primero creamos la base de datos:
Código:
-- Creamos la DB
drop schema if exists data;
create schema data;
use data;
-- Creamos las tablas
create table clientes (
id_cli int primary key auto_increment,
nombre varchar(50)
);
create table tiendas (
id_tie int primary key auto_increment,
nombre varchar(50),
fk_id_cli int
);
-- Creamos la FK
alter table tiendas add constraint fk_cliente foreign key (fk_id_cli) references clientes(id_cli);
Ahora creamos los procedimientos:
Código:
delimiter $$
-- Creamos un procedimiento por el cual añadiremos clientes
create procedure sp_datos_clientes (int_datos int)
begin
declare i int default 0;
declare i_tot int default 0;
set i=(select count(id_cli) from clientes)+1;
set i_tot=i+int_datos;
repeat
insert into clientes values(null,concat('Cliente ',i));
set i=i+1;
until i >= i_tot end repeat;
end$$
-- Creamos un procedimiento por el cual añadiremos tiendas a los clientes
create procedure sp_datos_tiendas(n_tiendas int)
begin
declare cli int default 0;
declare cli_tot int default 0;
declare i int default 1;
set cli=((select distinct count(fk_id_cli) from tiendas)/10)+1;
set cli_tot=cli+n_tiendas;
repeat
repeat
insert into tiendas values(null,concat('Tienda ',i),cli);
set i=i+1;
until i >10 end repeat;
set cli=cli+1;
set i=1;
until cli>=cli_tot end repeat;
end $$
delimiter ;
Y por último los ejecutamos:
Código:
call sp_datos_clientes(30);
call sp_datos_tiendas(30);
¡OJO! El argumento debe ser el mismo en las 2 llamadas, si no no se creará todo correctamente y puede que te de errores. Eso si, las puedes ejecutar todas las veces que quieras. Las dos seguidas (eso si), y con el mismo argumento (30 o 20 o 100 o el que sea).
¡Un saludo!