我有一个包含一些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 ... ... ...
我想使用这些命令创建一个sqlite3数据库文件,以便使用Python轻松使用.
如何在Ubuntu上执行此操作?
解决方法
这不是一个sql文件,它包含一些MysqL特定的东西,其中一些sqlite将接受,有些不会.我们将从顶部开始.
您不需要创建数据库或与sqlite一起使用.如果要从命令行运行sqlite3创建数据库,请将其命名:
$sqlite3 db_name.sqlt < your_sql.sql
如果db_name.sqlt存在,那么它将被使用,如果它不存在,那么它将被创建.所以创建数据库和使用是由你如何运行sqlite3隐含的.您可能需要使用不同的扩展名,具体取决于Python要查看的内容.
引用的反引号是MysqLism,双引号是标识符的标准引用机制.幸运的是,sqlite会接受他们,所以你可以让他们一个人.
sqlite不知道什么是int(10)unsigned意味着,你必须删除unsigned,否则sqlite将会接受它. sqlite也不会知道什么是ENGINE = InnoDB DEFAULT CHARSET = utf8意味着你也必须删除它.
你可能会碰到MysqL很高兴的其他事情,但sqlite不是.你必须尝试并修复它,并尝试并修复它,直到它工作.或者尝试找到一个可以为您转换数据库的工具,我总是手动执行这些操作或使用一次性脚本,因此我不知道可以帮助您的任何工具.