Вставить случайную строку в таблицу, а затем удалить - PullRequest
0 голосов
/ 09 июля 2019

У меня есть две таблицы: tableA и tableB. Я хотел бы вставить случайную строку из таблицы A в таблицу B, а затем удалить эту строку из таблицы A. Как мне это сделать? Это вообще возможно? Ниже мой код вставки, но я не знаю, как удалить эту строку.

INSERT INTO tableB
SELECT * FROM tableA ORDER BY RANDOM() LIMIT 1;

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете использовать rowid:

DELETE from tableA
WHERE elementA = (
  SELECT elementA from tableB
  WHERE rowid = (SELECT MAX(rowid) FROM tableB) 
)

При условии, что elementA уникален в обеих таблицах, если он выполняется после вашего оператора INSERT, он найдет elementA из вставленной строки и удалит строку из TableA с этим элементом A.

...