python - Python MySQL中一个变量中的多个CREATE语句
问题描述
我需要在 MySQL 中创建多个表,并且我已经用 Python 编写了它。我想把它放在一个像这样的变量中:
cursor = conn.cursor()
query = """
CREATE TABLE `A` (
`a_col1` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
`a_col2` datetime(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `B` (
`b_col1` varchar(20) NOT NULL,
`b_col2` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `C` (
`c_col1` varchar(50) DEFAULT NULL,
`c_col2` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
"""
cursor.execute(query)
但是我遇到了一个错误: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在“CREATE TABLE B... at line 6”附近使用正确的语法
我在这里错过了什么吗?我也可以听到一些关于更好方法的建议。
谢谢!
解决方案
你只需要使用 cursor.executemany 代替
请参阅此旧帖子Python + MySQLdb executemany和文档https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html
推荐阅读
- python - 如何为 Azure 自动输入密码?
- django - 是否可以允许 GitHub 上的dependabot 自动将软件“bump”到新版本?
- javascript - 用文字代替数字?Fisher-Yates 随机化
- python - 在 Python 中反转字典
- c# - 如何正确处理 SMTP 对象?
- php - 如何将 echo 的内容(带有 html 标签)保存在变量中?
- python - 我将如何生成 2 个列表的所有可能组合
- c# - 如何重载 LINQ string.Contains()?
- javascript - Jest spyOn 无法识别函数调用
- sql - 使用自联接通过 Oracle SQL 更新表