次のようなSQLコマンドを含むファイルがあります。
CREATE DATABASE IF NOT EXISTS `db_name`;
USE `db_name`;
CREATE TABLE IF NOT EXISTS `customers` (
`id` int(10) unsigned NOT NULL,
`f_name` varchar(50) DEFAULT NULL,
`l_name` varchar(50) DEFAULT NULL,
`company_name` varchar(200) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`phone` varchar(25) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `customers` (`id`, `f_name`, `l_name`, `company_name`, `email`, `phone`) VALUES
...
...
...
Pythonで簡単に使用できるように、これらのコマンドを使用してSQLite3データベースファイルを作成したいと思います。
Ubuntuでどうすればよいですか?
これはSQLファイルではなく、SQLiteが受け入れるものと受け入れないMySQL固有のものが多数含まれています。最初から始めます。
SQLiteでは_create database
_やuse
は必要ありません。データベースを作成する場合は、コマンドラインから_sqlite3
_を実行するときに名前を付けます。
_$ sqlite3 db_name.sqlt < your_sql.sql
_
_db_name.sqlt
_が存在する場合は使用され、存在しない場合は作成されます。したがって、_create database
_とuse
は、_sqlite3
_の実行方法によって暗示されます。 Pythonが見たいものに応じて、異なる拡張子を使用する必要があるかもしれません。
引用のバッククォートはMySQL主義であり、二重引用符は識別子の標準的な引用メカニズムです。幸いなことに、SQLiteはそれらを受け入れますので、そのままにしておくことができます。
SQLiteはint(10) unsigned
の意味を知りません。SQLiteが受け入れる前にunsigned
を削除する必要があります。 SQLiteは_ENGINE=InnoDB DEFAULT CHARSET=utf8
_の意味もわからないので、それも削除する必要があります。
おそらく、MySQLは満足しているが、SQLiteは満足していない他のことに遭遇するでしょう。あなたはそれを試して修正し、それが機能するまで試して修正する必要があります。または、データベース間で翻訳できるツールを探してみてください。私は常にこれらの種類の作業を手作業で行うか、1回限りのスクリプトを使用しているので、役立つツールはわかりません。
基本的に上記のコマンドはmysqlまたは他のデータベース用です(これらのほとんどはsqliteを操作するために微調整する必要があります。sqliteはデータベースをファイルの形式で保存します。入力してデータベースを作成または開くことができます
sqlite3 db
コマンドラインで。このステートメントは、「db」という名前のデータベースを作成または開きます