当前位置: 首页 > news >正文

网站开发培训费济南网络优化推广公司哪家好

网站开发培训费,济南网络优化推广公司哪家好,如何做网站模板,如果在阿里云上做自己的网站场景#xff1a;有多张表#xff0c;依据其中一张表的自增字段取得 id 值作为对象ID#xff0c;然后使用这个Id插入到其他它表中。 如下一张 MySQL 的 innodb 表 X#xff0c;用 go 编写程序#xff0c;不指定 a 的值#xff0c;指定 b 和 c 的值#xff0c;往表 X 插入…场景有多张表依据其中一张表的自增字段取得 id 值作为对象ID然后使用这个Id插入到其他它表中。 如下一张 MySQL 的 innodb 表 X用 go 编写程序不指定 a 的值指定 b 和 c 的值往表 X 插入数据如果数据已经存在则执行更新操作成功后取得该笔插入或者更新的记录对应的 a 字段的值。 create table X (a int unsigned AUTO_INCREMENT, b int, c int,PRIMARY KEY (a), UNIQUE KEY(b) ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4;非事务版本 package mainimport (database/sqlfmt_ github.com/go-sql-driver/mysql )func main() {db, err : sql.Open(mysql, user:passwordtcp(localhost:3306)/dbname)if err ! nil {panic(err)}defer db.Close()// 插入或更新记录query : INSERT INTO X (b, c) VALUES (?, ?)ON DUPLICATE KEY UPDATE c VALUES(c), a LAST_INSERT_ID(a)result, err : db.Exec(query, value1, value2)if err ! nil {panic(err)}// 获取自增IDlastInsertID, err : result.LastInsertId()if err ! nil {panic(err)}fmt.Printf(LastInsertID: %d\n, lastInsertID) }非事务版本不能保持 a 值的连续性。 事务版本 package mainimport (database/sqlfmtsync_ github.com/go-sql-driver/mysql )func upsertRecord(db *sql.DB, b, c int) (int, error) {// 开始事务tx, err : db.Begin()if err ! nil {return 0, err}defer tx.Rollback()// 尝试查找记录var id interr tx.QueryRow(SELECT a FROM X WHERE b ?, b).Scan(id)if err ! nil {if err sql.ErrNoRows {// 记录不存在插入新的记录result, err : tx.Exec(INSERT INTO X (b, c) VALUES (?, ?), b, c)if err ! nil {return 0, err}lastInsertID, err : result.LastInsertId()if err ! nil {return 0, err}id int(lastInsertID)} else {// 其他错误return 0, err}} else {// 记录存在更新记录_, err tx.Exec(UPDATE X SET c ? WHERE a ?, c, id)if err ! nil {return 0, err}}// 提交事务err tx.Commit()if err ! nil {return 0, err}return id, nil }func main() {db, err : sql.Open(mysql, dswrite:ds#582701tcp(9.134.177.242:3306)/dsdb)if err ! nil {panic(err)}defer db.Close()var wg sync.WaitGroupfor i : 0; i 10; i {wg.Add(1)go func(i int) {defer wg.Done()id, err : upsertRecord(db, 20i, 100i)if err ! nil {fmt.Printf(Error: %v\n, err)} else {fmt.Printf(ID: %d\n, id)}}(i)}wg.Wait() }该版本可以保持 a 值的连续性。实际可以再优化去掉 select先 insert 或者 update 即可。
http://www.zqtcl.cn/news/358818/

相关文章:

  • 花都网站建设价格重庆市住房和城乡建设厅网站
  • 北京住总第一开发建设有限公司网站wordpress 网站访问认证页面
  • 网站制作的管理苏州百度推广服务中心
  • 厦门建行网站首页企业展厅建筑外观
  • 重庆定制型网站建设1000套网站源码
  • 阿里云网站建设服务费会计科目安平县建设局网站
  • 网上做国外兼职网站网络编程技术实验报告
  • iis网站服务器安全隐患分析创新的合肥网站建设
  • 蛋糕网站建设方案广州网站公司推荐
  • 无锡seo公司网站广渠门做网站的公司
  • 安徽股票配资网站建设seo教程自学网
  • 网站建设酷隆做3d建模贴图找哪个网站
  • 天津市工程建设交易管理中心网站自己如何搭建服务器
  • 汉语网站建设心得专业网站的定义
  • 泉州台商区建设局网站论坛内网站怎么建设
  • 做文字云的网站平面设计发展前景
  • 域名注册后怎么建网站万网建站教程
  • 郑州网站建设幸巴石家庄站规模
  • 江华网站建设企业传统的网络营销推广方法
  • 网站开发与推广新网站开发工作总结
  • 永修县建设局网站长沙网站关键词优化
  • 厦门建站服务低代码开发会废了程序员吗
  • 安阳汤阴县网站建设下载wix做的网站
  • 福清市建设局网站深圳工业设计协会封昌红
  • 网站建设公司做网站要多少费用重庆找工作哪个网站好
  • 苏州网站建设方法cnzz网站排名是怎么做的
  • 烟台网站建设服务专业的企业智能建站制造厂家
  • 网站信息查询制作闹钟网站
  • 永久免费个人网站申请注册禁止 wordpress ajax
  • 建设网站江西一个简单的游戏网站建设