use*_*431 23 sql database sqlite
我有一个包含一些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
...
...
...
Run Code Online (Sandbox Code Playgroud)
我想使用这些命令创建一个SQLite3数据库文件,以便在Python中轻松使用它.
我如何在Ubuntu上做到这一点?
mu *_*ort 44
这不是一个SQL文件,它包含一堆特定于MySQL的东西,其中一些SQLite会接受,有些则不会.我们将从顶部开始.
您不需要create database或不use使用SQLite.如果要创建数据库,只需sqlite3在从命令行运行时为其命名:
$ sqlite3 db_name.sqlt < your_sql.sql
Run Code Online (Sandbox Code Playgroud)
如果db_name.sqlt存在则将使用它,如果它不存在则将被创建.所以create database,use你的运作方式暗示着sqlite3.您可能需要使用不同的扩展,具体取决于Python想要查看的内容.
引用的反引号是MySQL主义,双引号是标识符的标准引用机制.幸运的是,SQLite会接受它们,所以你可以不管它们.
SQLite不知道是什么int(10) unsigned意思,你必须删除unsigned之前SQLite会接受它.SQLite也不知道是什么ENGINE=InnoDB DEFAULT CHARSET=utf8意思,所以你也必须删除它.
你可能会碰到MySQL很满意的其他东西,但SQLite却没有.您将不得不尝试并修复它并尝试并修复它直到它工作.或者尝试找到一个可以在数据库之间进行转换的工具,我总是手工或使用一次性脚本来做这些事情,所以我不知道有什么工具可以帮助你.