Ответ 1
Это не совсем файл SQL, содержащий кучу специфичных для MySQL элементов, некоторые из которых SQLite будут принимать, а некоторые - нет. Мы начнем вверх.
Вам не нужно create database
или use
с SQLite. Если вы хотите создать базу данных, просто назовите ее, когда вы запустите sqlite3
из командной строки:
$ sqlite3 db_name.sqlt < your_sql.sql
Если db_name.sqlt
существует, то он будет использоваться, если он не существует, то он будет создан. Таким образом, create database
и use
подразумеваются тем, как вы запускаете sqlite3
. Возможно, вам потребуется использовать другое расширение в зависимости от того, что хочет видеть Python.
Backticks для цитирования являются MySQLism, двойные кавычки являются стандартным механизмом цитирования для идентификаторов. К счастью для вас, SQLite примет их, поэтому вы можете оставить их в покое.
SQLite не будет знать, что означает int(10) unsigned
, вам нужно будет удалить unsigned
, прежде чем SQLite примет его. SQLite также не будет знать, что означает ENGINE=InnoDB DEFAULT CHARSET=utf8
, поэтому вам также придется удалить это.
Вы, вероятно, столкнетесь с другими вещами, которыми довольна MySQL, но SQLite - нет. Вам придется попробовать его, исправить и попробовать и исправить, пока он не сработает. Или попробуйте найти инструмент, который может переводить между вами базы данных, я всегда делаю такие вещи вручную или используя одноразовые скрипты, поэтому я не знаю никаких инструментов, которые могут вам помочь.