моя проблема в этом
У меня есть таблица в моей базе данных, которая содержит более 1 миллиона строк. Иногда мне нужно иметь sql-дамп моей таблицы на моем ПК и экспортировать целую таблицу очень долго. На самом деле мне нужно экспортировать таблицу, например, с последними 5000 строк. Итак, есть способ экспортировать таблицу MySql, выбрав последние X строк. Я знаю несколько способов сделать это с помощью команд терминала, но мне нужен бедный MySql-запрос, если это возможно. Спасибо
Если я хорошо понимаю, вы можете попробовать, используя функциональность INTO OUTFILE
предоставляемую MySQL. конечно, я не знаю, что ваш текущий запрос, но вы можете легко изменить мою структуру с помощью:
SELECT *
FROM table_name
INTO OUTFILE '/tmp/your_dump_table.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ORDER BY id DESC
LIMIT 5000
Поскольку пользователь @Hayk Abrahamyan выразил предпочтение экспортировать дамп в виде файла.sql, попробуйте проанализировать действительную альтернативу:
Как результат выходного файла.sql, у вас будет что-то вроде структуры ниже:
/*
-- Query: SELECT * FROM mytodo.todos
ORDER BY id DESC
LIMIT 5000
-- Date: 2018-01-07 13:15
*/
INSERT INTO 'todos' ('id','description','completed') VALUES (3,'Eat something',1);
INSERT INTO 'todos' ('id','description','completed') VALUES (2,'Buy something',1);
INSERT INTO 'todos' ('id','description','completed') VALUES (1,'Go to the store',0);
mysqldump
из командной строки. В качестве альтернативы вы можете подумать о создании оператораINSERT INTO
в другой новой пустой таблице внутри вашей текущей или в новой схеме базы данных (то есть без сохранения данных дампа во внешнем файле).