当前位置: 首页 > 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.pierceye.com/news/358818/

相关文章:

  • 谷歌网站优化可以做物理题的网站
  • 公司的网站建设是什么部门品牌餐饮加盟网站建设
  • 深圳品牌网站建设公司哪家好学建网站 必须学那些知识
  • 国内设计网站推荐山东省建设安全生产协会网站
  • 南京专业网站开发团队如何用手机建网站
  • 在婚恋网站上做红娘怎么样正规网络推广服务
  • 网络媒体设计是做什么的西安网站优化公司
  • 有项目去哪里找投资人河南网站优化排名
  • 灯塔建设网站网上做流量对网站有什么影响
  • 网站模板 黑色建设网站安全措施
  • 临沂企业网站建设珠海建设网站的公司哪家好
  • 中国网站建设公司排行榜网站建设精美模板
  • 国家对于学校网站建设深圳网站建设公司网络服务
  • 承德建站公司福田庆三整鼻子好吗
  • 域名和网站关联seo优化是指
  • 爱站网官网关键词周口网站关键词优化
  • vps网站管理器阿里云如何做网站
  • 网站是什么意思例如营销型网站文案怎么做
  • 五莲县网站建设wordpress去掉链接中的吗
  • 贡井区建设局网站建网是什么
  • 高端大气网站模板南京网站制作西安
  • wordpress站点标题和副标题网站内容要突出什么原因
  • 网站建设公司排行杭州wordpress站外链接跳转页面
  • 哪个网站可以做行程攻略哈尔滨市建设工程招标网
  • django网站开发实例望城建设局网站
  • 住房和城乡建设网站方案网页界面设计的网络系统有哪些
  • 自己做的网站怎么设置文件下载商城app搭建
  • 好看的网站分享查域名注册详细信息查询
  • 中山网站建设招聘宜宾seo快速排名
  • 网站制作 福宁网络有限公司单页网站seo优化