Вставка случайных данных из таблицы в существующие строки в другой - PullRequest
0 голосов
/ 02 августа 2020

Я создаю тупой набор данных. У меня 2 стола. Первая таблица - SENSOR, вторая - AREA. Таблица SENSOR имеет 1 столбец с именем sensorID , уже заполненный 100 уникальными строками, в то время как таблица AREA имеет 1 столбец с именем area с 32 уникальными строками. Я хочу создать столбец с именем AREA в таблице SENSOR и заполнить его случайными значениями из таблицы AREA.

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

mycursor.execute("SELECT * FROM area")

results = mycursor.fetchall()

col = "INSERT INTO sensor(area) VALUES(%s)"
val = []

for _ in results:
    val.append(random.choice(results))

mycursor.executemany(col,val)
raindb.commit()

1 Ответ

0 голосов
/ 02 августа 2020

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

UPDATE sensor
       SET area = (SELECT area
                          FROM area
                          ORDER BY rand()
                          LIMIT 1);

db <> fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...