MySQL 动态建表是指在程序运行时根据需要动态地创建数据库表。这种技术通常用于处理不确定的数据结构或需要灵活扩展的应用场景。
以下是一个基于 SQL 语句的动态建表示例:
import mysql.connector
# 连接到 MySQL 数据库
db = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
cursor = db.cursor()
# 动态创建表的 SQL 语句
table_name = "dynamic_table"
columns = [
("id", "INT AUTO_INCREMENT PRIMARY KEY"),
("name", "VARCHAR(255) NOT NULL"),
("age", "INT")
]
# 拼接 SQL 语句
sql = f"CREATE TABLE {table_name} ("
for column in columns:
sql += f"{column[0]} {column[1]}, "
sql = sql.rstrip(", ") + ")"
# 执行 SQL 语句
cursor.execute(sql)
# 提交更改
db.commit()
# 关闭连接
cursor.close()
db.close()cursor.execute(f"SHOW TABLES LIKE '{table_name}'")
result = cursor.fetchone()
if result:
print(f"Table {table_name} already exists.")
else:
cursor.execute(sql)# 使用参数化查询
table_name = "dynamic_table"
columns = [
("id", "INT AUTO_INCREMENT PRIMARY KEY"),
("name", "VARCHAR(255) NOT NULL"),
("age", "INT")
]
sql = f"CREATE TABLE %s ("
params = [table_name]
for column in columns:
sql += f"{column[0]} {column[1]}, "
sql = sql.rstrip(", ") + ")"
params.extend([param for _, param in columns])
cursor.execute(sql, params)通过以上内容,你应该对 MySQL 动态建表有了全面的了解,并且知道如何在实际应用中实现和解决常见问题。