В моей базе данных у меня есть таблица по умолчанию (с именем «mytable»), которую я загружаю из Интернета. В таблице указано 100 строк и 10 столбцов (поля).MySQL - сравните две таблицы и сгенерируйте файл SQL diff
Я меняю некоторые значения в таблице, но я не удаляю и не вставляю ни строки, ни столбцы.
Скажите, что в пятом ряду таблицы я изменяю значение поля «Имя» от «Фокс» до «Медведя».
Затем я снова загружаю таблицу из Интернета, и я добавляю ее в базу данных с другим именем.
Итак, теперь у меня есть таблицы «oldtable» (содержащие значения по умолчанию) и «mytable», где изменяется только поле в одной строке.
Теперь я хочу показать другим, что я изменил в базе данных, и дать им сценарий SQL, который они могут запускать, чтобы они применяли те же изменения. Я не могу дать им свой «мой стол», потому что они не могут его использовать. У них также есть это, и они изменили некоторые ценности в нем, как они считают нужным. Они не хотят мой стол, они просто хотят применить изменения, которые я сделал, помимо изменений, которые они уже сделали в таблице.
Так что я могу дать им этот файл с именем «patch.sql»:
connect myDatabase;
update mytable set name="Bear" where name like "Fox";
Однако, я хотел бы автоматически создать такой файл «patch.sql», так что я не должен помнить что я изменил и написал сценарий вручную. Программа может проверять различия между двумя таблицами и автоматически генерировать этот файл SQL.
Возможно ли это сделать в консоли MySQL или с любым другим существующим инструментом?
Обновление: таблица имеет первичный ключ.
ли столбцы вы изменили фиксированные? Я имею в виду, что вы всегда меняете значения в одном столбце? –
Нет, изменения могут быть в любом столбце.Но мне также было бы интересно узнать решение для конкретного случая, когда я меняю только один столбец – frostwolf
Не могли бы вы просто использовать diff или что-то вроде Meld в файлах SQL? – ggdx