网站建设 前沿文章,程序员自学网站,樟木头网站推广,汕头企业制作网站要批量执行这些SQL插入语句#xff0c;可根据使用的数据库管理系统(DBMS)选择不同的方法。以下是几种常见的批量执行方式#xff1a; 1. 使用数据库客户端工具 MySQL / MariaDB 命令行#xff1a;将所有SQL语句保存到文件(如cities.sql)#xff0c;然后执行#xff1a; 登… 要批量执行这些SQL插入语句可根据使用的数据库管理系统(DBMS)选择不同的方法。以下是几种常见的批量执行方式 1. 使用数据库客户端工具 MySQL / MariaDB 命令行将所有SQL语句保存到文件(如cities.sql)然后执行 登录后复制 mysql -u username -p database_name cities.sql 1. MySQL Workbench粘贴所有语句到查询窗口点击执行按钮。 PostgreSQL 命令行 登录后复制 psql -U username -d database_name -f cities.sql 1. pgAdmin在查询工具中执行批量语句。 SQL Server SSMS粘贴所有语句到查询窗口按F5执行。 2. 使用编程语言执行批量插入 如果需要通过代码执行可使用数据库连接库(如Python的pymysql、Java的JDBC等)。以下是Python示例 登录后复制 import pymysql# 连接数据库
conn pymysql.connect(hostlocalhost,userusername,passwordpassword,databasedatabase_name
)try:with conn.cursor() as cursor:# 读取SQL文件内容with open(cities.sql, r) as file:sql_statements file.read().split(;)# 执行每条SQL语句for statement in sql_statements:if statement.strip(): # 跳过空语句cursor.execute(statement)# 提交事务conn.commit()print(批量插入成功)except Exception as e:print(f错误: {e})conn.rollback() # 出错时回滚finally:conn.close() 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31. 3. 优化批量插入性能 合并INSERT语句(推荐) 将多个单行INSERT合并为一个多行INSERT减少事务开销 登录后复制 INSERT INTO thorn_dict (id,ORGANIZATION_ID,CATEGORY_ID,CODE,name,STATUS,REMARK) VALUES
(999999980,3,1241,999999980,北京,E,null),
(999999981,3,1241,999999981,成都,E,null),
-- 其他城市...
(1000000010,3,1241,1000000010,重庆,E,null);
COMMIT; 1.2.3.4.5.6. 禁用自动提交 如果使用编程语言可先关闭自动提交执行完所有语句后再手动提交 登录后复制 conn.autocommit(False) # 禁用自动提交
# 执行多条INSERT
conn.commit() # 一次性提交 1.2.3. 4. 注意事项 事务大小批量执行时确保事务大小在数据库承受范围内避免内存溢出。主键冲突确保id字段无重复值否则会导致插入失败。权限确保用户有执行批量插入的权限。日志记录大事务可能导致日志膨胀可考虑分批执行(如每1000条提交一次)。 选择建议 快速测试使用数据库客户端工具直接执行SQL文件。生产环境通过代码执行便于错误处理和性能优化。性能优先使用多行INSERT语句或数据库特定的批量插入API(如PostgreSQL的COPY命令)。