Использование временных таблиц в rails с помощью оператора sql - PullRequest
1 голос
/ 09 ноября 2010

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

Получение дубликатов - довольно сложный оператор SQL, который я, скорее, не делаюхочу выполнить в порядке active_record ...

SELECT bad_rows. *
FROM settings AS bad_rows
INNER JOIN (

    SELECT user_id, record_id, MIN( id ) AS min_id
    FROM settings
    GROUP BY user_id, record_id
    HAVING COUNT( * ) >1

) AS good_rows 
ON good_rows.user_id = bad_rows.user_id
AND good_rows.record_id = bad_rows.record_id
AND good_rows.min_id <> bad_rows.id

Как я могу сгенерировать эту временную таблицу с помощью этого оператора?Имеет ли смысл использовать ar-extensions для этой задачи?

1 Ответ

0 голосов
/ 11 июля 2011

Я нашел эту ссылку: http://www.ruby -forum.com / topic / 55322

Где у кого-то еще была похожая проблема. В основном они рекомендовали пройти прямо через метод AR execute () или использовать код стиля миграции (например, create_table: my_table и т. Д.).

...