Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. delimiter //
  2. create procedure setCountries()
  3. begin
  4. insert into countries (name) values
  5. ('Россия'), ('Украина'), ('Беларусь');
  6. end//
  7. delimiter ;
  8.  
  9. delimiter //
  10. create procedure setShops()
  11. begin
  12. set @i = 1;
  13. set @maxId = (select max(id) from countries);
  14. loop1: loop
  15. insert into shops (name, countryId)
  16. values (concat('shop', @i), floor(rand() * @maxId) + 1);
  17. set @i = @i + 1;
  18. if @i > 10 then leave loop1; end if;
  19. end loop loop1;
  20. end//
  21. delimiter ;
  22.  
  23. delimiter //
  24. create procedure setAuthors()
  25. begin
  26. set @i = 1;
  27. set @maxId = (select max(id) from countries);
  28. loop1: loop
  29. insert into authors (name, surname, countryId)
  30. values (
  31. concat('author', @i),
  32. concat('surname', @i),
  33. floor(rand() * @maxId) + 1
  34. );
  35. set @i = @i + 1;
  36. if @i > 100 then leave loop1; end if;
  37. end loop loop1;
  38. end//
  39. delimiter ;
  40.  
  41. delimiter //
  42. create procedure setThemes()
  43. begin
  44. insert into themes (name)
  45. values ('Детектив'), ('Роман'), ('Фэнтези');
  46. end//
  47. delimiter ;
  48.  
  49. delimiter //
  50. create procedure setBooks()
  51. begin
  52. set @i = 1;
  53. loop1: loop
  54. set @authorId = (
  55. select id from authors order by rand() limit 1
  56. );
  57. set @themeId = (
  58. select id from themes order by rand() limit 1
  59. );
  60. insert into books (
  61. name, pages, price, publishDate, authorId, themeId
  62. ) values (
  63. concat('book', @i), floor(rand() * 500) + 20,
  64. rand() * 500000 / 100 + 100,
  65. current_timestamp(), @authorId, @themeId
  66. );
  67. set @i = @i + 1;
  68. if @i > 500 then leave loop1; end if;
  69. end loop loop1;
  70. end//
  71. delimiter ;
  72.  
  73. call setBooks();
  74.  
  75. delimiter //
  76. create procedure setSales()
  77. begin
  78. set @i = 1;
  79. loop1: loop
  80. set @bookId = (select id from books order by rand() limit 1);
  81. set @price = (select price from books where id = @bookId);
  82. set @shopId = (select id from shops order by rand() limit 1);
  83. set @quantity = (select floor(rand() * 100) + 1);
  84. insert into sales (price, quantity, saleDate, bookId, shopId)
  85. values (@price, @quantity, current_timestamp(), @bookId, @shopId);
  86. set @i = @i + 1;
  87. if @i > 1000 then leave loop1; end if;
  88. end loop loop1;
  89. end//
  90. delimiter ;
  91.  
  92. call setCountries();
  93. call setShops();
  94. call setAuthors();
  95. call setThemes();
  96. call setBooks();
  97. call setSales();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement