如何从Python中解析MySQL构建代码?

2024-06-28 11:28:29 发布

您现在位置:Python中文网/ 问答频道 /正文

I've exported my MySQL database to a .txt/.sql file (link)并希望使用它在其他计算机上重建数据库。虽然在HeidiSQL中运行脚本运行得非常好,但是在启动应用程序之前,我希望确保所有表都存在并且都是正确的。在

我可以将构建的代码复制粘贴到Python代码中,但导出是数据库的直接表示,不应包含任何错误,而复制粘贴。。。所以我试着解析这个文件,但是我的解析技巧还有很多需要改进的地方。在

下面是一段代码:

CREATE TABLE IF NOT EXISTS `data` (
  `dataid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `measurementid` int(10) unsigned NOT NULL DEFAULT '0',
  `frame` int(10) unsigned NOT NULL,
  `sensor_row` int(10) unsigned NOT NULL,
  `sensor_col` int(10) unsigned NOT NULL,
  `value` float unsigned NOT NULL,
  PRIMARY KEY (`dataid`),
  UNIQUE KEY `measurementid_frame_sensor_row_sensor_col` (`measurementid`,`frame`,`sensor_row`,`sensor_col`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

因此,假设数据库data已经创建,我正在寻找一种方法来解析构建的代码,并在不存在的情况下创建所有必需的表,或者如果这些表发生了更改,则对其进行修改。在

关于如何处理这个问题有什么建议吗?在


Tags: 代码数据库defaultdatanotcolsensorframe
1条回答
网友
1楼 · 发布于 2024-06-28 11:28:29

您只需通过python数据库适配器从文件中完全直接执行sql:

import MySQLdb
sql_dump = open('builtcode.sql', 'r').read()

conn = MySQLdb.connect(db='soans', passwd='*****')
cur = conn.cursor()

cur.execute(sql_dump)

cur.connection.close()

给出:

^{pr2}$

相关问题 更多 >