z następującym stwierdzeniem:
mysqldump --complete-insert --lock-all-tables --no-create-db
--no-create-info --extended-insert --password=XXX -u XXX
--dump-date yyy > yyy_dataOnly.sql
Otrzymuję instrukcje INSERT, takie jak następujące:
INSERT INTO `table` VALUES (1,'something'),(2,'anything'),(3,'everything');
To, czego potrzebuję w moim przypadku, to coś takiego:
INSERT INTO `table` VALUES (1,'something');
INSERT INTO `table` VALUES (2,'anything');
INSERT INTO `table` VALUES (3,'everything');
Czy istnieje sposób, aby powiedzieć „mysqldump”, aby utworzył nową instrukcję INSERT dla każdego wiersza? Dzięki za pomoc!
mysqldump --opt --skip-extended-insert
lubmysqldump --opt --extended-insert=FALSE
pracagit diff
zrzuty na dwóch różnych bazach danych i mieć jasny obraz tego, co zostało zmienione.W nowszych wersjach zmieniono flagi: z dokumentacji:
Napisz instrukcje INSERT, używając składni wielowierszowej, która zawiera kilka list VALUES. Powoduje to mniejszy plik zrzutu i przyspiesza wstawianie po ponownym załadowaniu pliku.
Ta opcja, domyślnie włączona, jest skrótem dla kombinacji --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-table --quick - set-charset. Zapewnia szybką operację zrzutu i tworzy plik zrzutu, który można szybko załadować ponownie na serwer MySQL.
Ponieważ opcja --opt jest domyślnie włączona, określasz tylko jej odwrotność, czyli --skip-opt, aby wyłączyć kilka ustawień domyślnych. Zobacz omówienie grup opcji mysqldump, aby uzyskać informacje o selektywnym włączaniu lub wyłączaniu podzbioru opcji, na które ma wpływ --opt.
Wyłącz przedłużoną wkładkę
źródło