Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.96 KB | None | 0 0
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS addrandrecords$$
  3.  
  4. CREATE PROCEDURE addrandrecords (IN name varchar(20), num int)
  5. BEGIN
  6.     CREATE TEMPORARY TABLE IF NOT EXISTS RandomNames (name varchar(20), gender char(1));
  7.     insert into RandomNames (name, gender) VALUES
  8.     ('Szymon','M'), ('Jakub','M' ), ('Filip','M'), ('Kacper','M'), ('Michal','M'), ('Mateusz','M' ), ('Bartosz','M'), ('Wojciech','M'), ('Adam','M'), ('Jan','M'),
  9.     ('Lena','F'), ('Maja','F'), ('Zuzanna','F' ), ('Julia','F' ), ('Wiktoria','F'), ('Amelia','F'), ('Natalia','F'), ('Martyna','F'), ('Anna','F'), ('Zofia','F'); #20 records
  10.  
  11.     CREATE TEMPORARY TABLE IF NOT EXISTS RandomSurnames (surname varchar(20));
  12.     insert into RandomSurnames (surname) VALUES
  13.     ('Nowak'), ('Wójcik'), ('Kowalczyk'), ('Wozniak'), ('Mazur'), ('Kaczmarek'), ('Krawczyk'), ('Zajac' ), ('Krol'), ('Wieczorek'), ('Walczak'), ('Sikora'), ('Pietrzak'), ('Wilk'), ('Sobczak'); #15 records
  14.  
  15.     CREATE TEMPORARY TABLE IF NOT EXISTS RandomHobby (nazwa varchar(20), lokacja varchar(20), typ enum('sport', 'nauka', 'inne'));
  16.     insert into RandomHobby (nazwa, lokacja, typ) VALUES
  17.     ('Pilka noza', 'stadion', 'sport'), ('Koszykowka', 'hala', 'sport'), ('Hokej', 'lodowisko', 'sport'), ('Siatkowka', 'hala', 'sport'), ('Plywanie', 'basen', 'sport'), ('Bieganie', 'stadion', 'sport'),
  18.     ('Biologia', 'uniwersytet', 'nauka'), ('Informatyka', 'politechnika', 'nauka'), ('Chemia', 'politechnika', 'nauka'), ('Matematyka', 'politechnika', 'nauka'), ('Psychologia', 'uczelnia', 'nauka'), ('Medycyna', 'uniwersytet', 'nauka'),
  19.     ('Esport', 'dom', 'inne'), ('Muzyka', NULL, 'inne'), ('Nulizmatyka', 'dom', 'inne'), ('Malarstwo', 'uczelnia', 'inne'), ('Ksiazki', 'biblioteka', 'inne'), ('Podrozowanie', NULL, 'inne'); #18 records
  20.  
  21.     CREATE TEMPORARY TABLE IF NOT EXISTS RandomPetName (name varchar(20), species varchar(20));
  22.     insert into RandomPetName VALUES
  23.     ('Fifek', 'dog'), ('Smokey', 'dog'), ('Sam', 'dog'), ('Kitty', 'cat'), ('Simba', 'cat'), ('Lucky', 'cat'), ('Sammy', 'hamster'), ('Charlie', 'hamster'), ('Oliver', 'fish'), ('Samantha', 'meerkat'), ('Fuppy', 'guinea pig'); #11 records
  24.  
  25.     CASE name
  26.         WHEN 'hobby' THEN
  27.             WHILE num > 0 DO
  28.                 SET @randosoba = (SELECT id FROM osoba ORDER BY RAND() LIMIT 1);
  29.                 CASE floor(rand()*3+1)
  30.                     WHEN 1 THEN
  31.                         SET @randtyp = 'sport';
  32.                         SET @randid = (SELECT id FROM sport ORDER BY RAND() LIMIT 1);
  33.                     WHEN 2 THEN
  34.                         SET @randtyp = 'nauka';
  35.                         SET @randid = (SELECT id FROM nauka ORDER BY RAND() LIMIT 1);
  36.                     WHEN 3 THEN
  37.                         SET @randtyp = 'inne';
  38.                         SET @randid = (SELECT id FROM inne ORDER BY RAND() LIMIT 1);
  39.                     END CASE;
  40.                 INSERT INTO hobby (osoba, id, typ) VALUES (@randosoba, @randid, @randtyp);
  41.                 SET num = num - 1;
  42.             END WHILE ;
  43.         WHEN 'inne' THEN
  44.             WHILE num > 0 DO
  45.                 SET @randnazwa = (SELECT nazwa FROM RandomHobby WHERE typ = 'inne' ORDER BY RAND() LIMIT 1);
  46.                 SET @randlokacja = (SELECT lokacja FROM RandomHobby WHERE nazwa = @randnazwa);
  47.                 CASE floor(rand()*2+1)
  48.                     WHEN 1 THEN SET @randtowarzysze = true;
  49.                     WHEN 2 THEN SET @randtowarzysze = false;
  50.                 END CASE;
  51.  
  52.                 INSERT INTO inne (nazwa, lokacja, towarzysze) VALUES (@randnazwa, @randlokacja, @randtowarzysze);
  53.                 SET num = num - 1;
  54.             END WHILE;
  55.         WHEN 'nauka' THEN
  56.             WHILE num > 0 DO
  57.                 SET @randnazwa = (SELECT nazwa FROM RandomHobby WHERE typ = 'nauka' ORDER BY RAND() LIMIT 1);
  58.                 SET @randlokacja = (SELECT lokacja FROM RandomHobby WHERE nazwa = @randnazwa);
  59.  
  60.                 INSERT INTO nauka (nazwa, lokacja) VALUES (@randnazwa, @randlokacja);
  61.                 SET num = num - 1;
  62.             END WHILE ;
  63.         WHEN 'osoba' THEN
  64.             WHILE num > 0 DO
  65.                 SET @randimię = (SELECT name FROM RandomNames ORDER BY RAND() LIMIT 1);
  66.                 SET @randnazwisko = (SELECT surname FROM RandomSurnames ORDER BY RAND() LIMIT 1);
  67.                     SET @MIN = '2001-11-11 00:00:00';
  68.                     SET @MAX = '1969-11-11 00:00:00';
  69.                 SET @randdataUrodzenia = TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, @MIN, @MAX)), @MIN);
  70.                 SET @randplec = (SELECT gender FROM RandomNames WHERE name = @randimię);
  71.  
  72.                 INSERT INTO osoba (imię, nazwisko, dataUrodzenia, plec) VALUES (@randimię, @randnazwisko, @randdataUrodzenia, @randplec);
  73.                 SET num = num - 1;
  74.             END WHILE;
  75.         WHEN 'sport' THEN
  76.             WHILE num > 0 DO
  77.                 SET @randnazwa = (SELECT nazwa FROM RandomHobby WHERE typ = 'sport' ORDER BY RAND() LIMIT 1);
  78.                 SET @randlokacja = (SELECT lokacja FROM RandomHobby WHERE nazwa = @randnazwa);
  79.                 CASE floor(rand()*3+1)
  80.                     WHEN 1 THEN SET @randtyp = 'indywidualny';
  81.                     WHEN 2 THEN SET @randtyp = 'druzynowy';
  82.                     WHEN 3 THEN SET @randtyp = 'mieszany';
  83.                 END CASE;
  84.  
  85.                 INSERT INTO sport (nazwa, typ, lokacja) VALUES (@randnazwa, @randtyp, @randlokacja);
  86.                 SET num = num - 1;
  87.             END WHILE ;
  88.         WHEN 'zwierzak' THEN
  89.             WHILE num > 0 DO
  90.                 SET @randname = (SELECT name FROM RandomPetName ORDER BY RAND() LIMIT 1);
  91.                 SET @randspecies = (SELECT species FROM RandomPetName WHERE name = @randname);
  92.                 CASE floor(rand()*2+1)
  93.                     WHEN 1 THEN SET @randsex = 'f';
  94.                     WHEN 2 THEN SET @randsex = 'm';
  95.                 END CASE;
  96.                 SET @randid = (SELECT id FROM osoba ORDER BY RAND() LIMIT 1);
  97.                     SET @MIN = '2019-11-11 00:00:00';
  98.                     SET @MAX = '1980-11-11 00:00:00';
  99.                 SET @randbirth = TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, @MIN, @MAX)), @MIN);
  100.                 CASE floor(rand()*3+1)
  101.                     WHEN 1 THEN
  102.                         SET @MIN = '2019-11-11 00:00:00';
  103.                         SET @MAX = @randbirth;
  104.                         SET @randdeath = TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, @MIN, @MAX)), @MIN);
  105.                     ELSE SET @randdeath = NULL;
  106.                 END CASE;
  107.  
  108.                 INSERT INTO zwierzak (name, species, sex, birth, death, id) VALUES (@randname, @randspecies, @randsex, @randbirth, @randdeath, @randid);
  109.                 SET num = num - 1;
  110.             END WHILE ;
  111.         ELSE SHOW TABLES;
  112.  
  113.     END CASE;
  114.  
  115.     DROP TEMPORARY TABLE RandomNames;
  116.     DROP TEMPORARY TABLE RandomSurnames;
  117.     DROP TEMPORARY TABLE RandomHobby;
  118.     DROP TEMPORARY TABLE RandomPetName;
  119. END $$
  120.  
  121. DELIMITER ;
  122.  
  123. call addrandrecords('osoba', 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement