MySQLDump po jednej instrukcji INSERT dla każdego wiersza danych

179

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!

rexford
źródło

Odpowiedzi:

278

Posługiwać się:

mysqldump --extended-insert=FALSE 

Należy pamiętać, że wiele wkładek będzie wolniejszych niż jedna duża wkładka.

driis
źródło
75
--skip-extended-insert wydaje mi się poprawną składnią (używając mysqldump w wersji 10.13)
Isaac Betesh
17
Wolniej, tak, ale wiele edytorów tekstu ma problemy z bardzo długimi wierszami tekstu i jeśli tabele zawierają ogromną ilość danych, tak się stanie.
Jahmic
mysqldump --opt --skip-extended-insertlub mysqldump --opt --extended-insert=FALSEpraca
Yzmir Ramirez
O MÓJ BOŻE! Przeprowadziłem migrację do nowej wersji, co spowodowało ten problem i wiele moich automatycznych skryptów nie działało. Myślałem, że mam przerąbane, ale to wydaje się być łatwym rozwiązaniem. Dzięki za udostępnienie!
Varun Verma
11
Jest to miłe, ponieważ teraz mogę wykonać git diffzrzuty na dwóch różnych bazach danych i mieć jasny obraz tego, co zostało zmienione.
Rolf
9

W nowszych wersjach zmieniono flagi: z dokumentacji:

--extended-insert, -e

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.

--optować

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.

--skip-extended-insert

Wyłącz przedłużoną wkładkę

izrael berko
źródło