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!

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.


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ę

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.