Как одновременно добавить случайное значение в столбец и объединить его во второй столбец? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь скопировать содержимое определенных столбцов в одной таблице в другую, добавляя 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;

Тогда я не получу те же числа, сохраненные в столбцах, что и сцепленные, так как каждое из них является индивидуально генерируемым случайным числом.

Я думал о том, чтобы сначала не копировать этот столбец, а потом обновлять его, но его нельзя оставлять пустым, и у него есть уникальное ограничение ключа.

...