python 读取mysql的每一张表格,给每张表格增加两列,列名称为a和b,数据类型为小数.,如果a和b列存在则跳过
时间: 2023-12-24 15:06:02 浏览: 84
可以使用Python中的MySQL Connector库来连接MySQL数据库,然后使用SHOW TABLES语句获取所有表名,再使用ALTER TABLE语句来给每张表格增加两列。
以下是实现的代码:
```python
import mysql.connector
# 连接MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 获取所有表名
mycursor = mydb.cursor()
mycursor.execute("SHOW TABLES")
tables = mycursor.fetchall()
# 给每张表格增加两列
for table in tables:
table_name = table[0]
# 判断a和b列是否已存在
mycursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'a'")
a_exists = mycursor.fetchone() is not None
mycursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'b'")
b_exists = mycursor.fetchone() is not None
if not a_exists:
mycursor.execute(f"ALTER TABLE {table_name} ADD COLUMN a DECIMAL(10,2) DEFAULT 0")
if not b_exists:
mycursor.execute(f"ALTER TABLE {table_name} ADD COLUMN b DECIMAL(10,2) DEFAULT 0")
# 提交修改并关闭连接
mydb.commit()
mycursor.close()
mydb.close()
```
注意,在添加新列时使用了DECIMAL数据类型,并指定了精度为10和小数位数为2。如果需要修改这些参数,可以相应地更改。另外,在添加新列时使用了DEFAULT 0,这将在新行插入时将a和b列的默认值设置为0。如果需要其他默认值,可以相应地更改。
阅读全文