Я пытаюсь скопировать содержимое определенных столбцов в одной таблице в другую, добавляя 2 дополнительных столбца, содержащих случайные числа, и в то же время объединяю эти же значения с параметром parameterValues. Моя проблема: если я делаю следующее, он генерирует случайные числа только один раз, и все мои строки заканчиваются одинаковыми дополнительными 2 значениями.
SET @InitialConditions_y0= FLOOR(-10 + (rand() * 20));
SET @InitialConditions_y1= FLOOR(-10 + (rand() * 20));
INSERT INTO testing (parameters, type, InitialConditions_y0, InitialConditions_y1)
SELECT CONCAT(parameterValues, " ; ",@InitialConditions_y0, "," ,@InitialConditions_y1), '10',
@InitialConditions_y0, @InitialConditions_y1
FROM QuestionInstances WHERE ProblemType = 3;
Но если я сделаю это
INSERT INTO testing (parameters, type, InitialConditions_y0, InitialConditions_y1)
SELECT CONCAT(parameterValues, " ; ", FLOOR(-10 + (rand() * 20)), "," , FLOOR(-10 + (rand() * 20))), '10',
FLOOR(-10 + (rand() * 20)), FLOOR(-10 + (rand() * 20))
FROM QuestionInstances WHERE ProblemType = 3;
Тогда я не получу те же числа, сохраненные в столбцах, что и сцепленные, так как каждое из них является индивидуально генерируемым случайным числом.
Я думал о том, чтобы сначала не копировать этот столбец, а потом обновлять его, но его нельзя оставлять пустым, и у него есть уникальное ограничение ключа.