web-dev-qa-db-ja.com

SQLコマンドファイルを使用してSQLite3データベースファイルを作成するにはどうすればよいですか?

次のような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でどうすればよいですか?

23
user1639431

これは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回限りのスクリプトを使用しているので、役立つツールはわかりません。

44
mu is too short

基本的に上記のコマンドはmysqlまたは他のデータベース用です(これらのほとんどはsqliteを操作するために微調整する必要があります。sqliteはデータベースをファイルの形式で保存します。入力してデータベースを作成または開くことができます

sqlite3 db

コマンドラインで。このステートメントは、「db」という名前のデータベースを作成または開きます

0
ravdhaw