Я создаю тестовые данные для новой базы данных, и у меня возникают проблемы с заполнением одного из полей внешнего ключа. Мне нужно создать относительно большое количество (1000) записей в таблице (SurveyResponses
), которая имеет внешний ключ для таблицы только с 6 записями (Surveys
)
В базе данных уже есть таблица Schools
с несколькими тысячами записей. Ради аргументов скажем, что это выглядит так
Schools
+----+-------------+
| Id | School Name |
+----+-------------+
| 1 | PS 1 |
| 2 | PS 2 |
| 3 | PS 3 |
| 4 | PS 4 |
| 5 | PS 5 |
+----+-------------+
Я создаю новую таблицу Survey
. Всего будет около 3 рядов.
Survey
+----+-------------+
| Id | Col2 |
+----+-------------+
| 1 | 2014 Survey |
| 2 | 2015 Survey |
| 3 | 2016 Survey |
+----+-------------+
SurveyResponses
просто привязывает школу к опросу.
Survey Responses
+----+----------+----------+
| Id | SchoolId | SurveyId |
+----+----------+----------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 1 |
| 4 | 4 | 3 |
| 5 | 5 | 2 |
+----+----------+----------+
Заполнение поля SurveyId
доставляет мне больше всего хлопот. Я могу случайным образом выбрать 1000 школ, но я не нашел способа сгенерировать 1000 случайных идентификаторов SurveyId. Я пытался избежать цикла while, но, может быть, это единственный вариант?
Я использовал Red Gate SQL Data Generator для генерации некоторых тестовых данных, но в этом случае мне очень хотелось бы понять, как это можно сделать с помощью необработанного SQL.