#java #python #sql #database
#java #питон #sql #База данных
Вопрос:
Я хотел бы создать очень простую функцию, чтобы увидеть, имеет ли запрос, выполненный в момент времени X, ту же структуру набора результатов (игнорируя порядок и данные), что и предыдущий запрос. Это состоит из двух компонентов:
- Являются ли неупорядоченные проекции выбора одинаковыми?
SELECT firstname, lastname FROM table
Это то же самое , что и:
SELET lastname, firstname FROM table WHERE date="2014-01-01"
- Являются
*
ли прогнозы одинаковыми? Например:SELECT * FROM table
Запущенный сейчас, это может быть не то же самое, что этот же запрос, выполненный через 15 минут, как только я добавлю два столбца в таблицу.
Что может быть хорошим способом решить, совпадают ли два результирующих набора, не выполняя весь запрос целиком? Или это вообще возможно?
Возможно, самым грубым подходом было бы просто добавить a limit 1
, а затем проверить совпадающие [Name Type]
‘ы.
(Пометка с помощью python, поскольку это язык, с которым я больше всего знаком, но открыт для предложений / ответов на любом языке).
Комментарии:
1. В ваших описаниях для второго случая, что вы подразумеваете под полем? Вы имеете в виду столбцы или записи? Вы хотите проверить только структуру столбцов, верно?
2. @AliTou да, только столбцы, сами значения / данные меня не волнуют. Т.Е., Если бы кто-то сделал a
truncate table
, это ничего бы не изменило.3. На каком языке вы предлагаете создать такую функцию? Стандартный SQL не входит в число ваших вариантов, но это было бы возможно на различных хост-языках, использующих встроенный SQL.
4. @JohnBollinger подойдет любой язык (python, java и т. Д.). Хотя в Stackoverflow кажется, что если бы я пометил такой вопрос
Java
, я бы почти сразу получил 10 отрицательных голосов, жалуясь, что вопрос недостаточно конкретен.5. В общем, вы не узнаете ответа, пока не выполните оба запроса и не сравните. Сама база данных также не всегда знает 100%, поскольку статистика не всегда полностью актуальна.