Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将python应用程序从mysql更改为sqlite_Python_Mysql_Sqlite - Fatal编程技术网

将python应用程序从mysql更改为sqlite

将python应用程序从mysql更改为sqlite,python,mysql,sqlite,Python,Mysql,Sqlite,我有一个为mysql编写的python应用程序,我想转换为使用sqlite。这些表是在名为db.py的文件中创建的。简单地说,我想我想经营这样的公司 createDb = sqlite3.connect(':memory:'') queryCurs = createDB.cursor() conn = sqlite3.connect(r"db.py") 但我不确定这是否会产生我预期的结果,即,按照之前在mysql中定义的方式创建数据库,并允许应用程序完全在内存中运行 我的上述陈述是正确的还是

我有一个为mysql编写的python应用程序,我想转换为使用sqlite。这些表是在名为db.py的文件中创建的。简单地说,我想我想经营这样的公司

createDb = sqlite3.connect(':memory:'')
queryCurs = createDB.cursor()

conn = sqlite3.connect(r"db.py")
但我不确定这是否会产生我预期的结果,即,按照之前在mysql中定义的方式创建数据库,并允许应用程序完全在内存中运行


我的上述陈述是正确的还是我遗漏了什么?

你不能做你想做的事;sqlite无法为您解析Python,也无法“理解”您的
db.py
脚本对MySQL的作用

您的
db.py
脚本也不包含MySQL表;它最多包含指示MySQL创建这些表的SQL语句

您必须将这些SQL语句转换为sqlite;每个数据库品牌都使用自己的SQL方言。这将是相似的,但不是相同的,因为MySQL和sqlite对于数据库应该如何存储和处理数据有不同的理念


如果您使用的是类似SQLAlchemy的ORM,那么您需要将ORM配置为连接到sqlite而不是MySQL;好的ORM可以将Python代码中表示的表结构转换为不同的数据库SQL方言。

主要区别在于sqlite使用的是什么?and:name而不是参数绑定的%s和%(name)s,并且sqlite是弱类型的。除此之外,大多数代码都很容易转换。但是你必须转换代码并运行它;这是没有办法的。