MySQL устанавливает переменную сеанса во время импорта базы данных

#mysql

#mysql

Вопрос:

Я пытаюсь импортировать базу данных, и во время этого процесса я хочу использовать эту команду и переменную

set session sql_require_primary_key=0;

Проблема в том, что я выполняю импорт из командной строки, я не знаю, как установить эту переменную только во время импорта.

Мысли?

Ответ №1:

Один из способов — поместить переменные сеанса в файл параметров и ссылаться на него при запуске клиента mysql для выполнения импорта.

Например, сохраните это в файле «require-pk.cnf»:

 [client]
sql_require_primary_key=0
 

Затем вызовите свой клиент:

 mysql --defaults-extra-file=require-pk.cnf < dump.sql
 

Альтернативный метод заключается в объединении set инструкции с вашим дампом и передаче ее клиенту mysql:

 ( echo "set sql_require_primary_key=0;" ; cat dump.sql ) | mysql
 

Или, конечно, вы можете открыть файл dump.sql в текстовом редакторе и добавить эту строку вверху.

Обратите внимание, что sql_require_primary_key значение по умолчанию уже равно OFF (0), поэтому, если сервер, на который вы импортируете, не включил его намеренно, вам не нужно его отключать. Если администратор базы данных включил это специально, у него может быть веская причина для этого.