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

相关文章:

  • 抚州市网站建设百度网盘登录
  • 网站增加一体化建设功能的好处正邦设计作品
  • 广州企业建站找哪家网络公司的名字
  • 软件下载网站如何履行安全陕西网站备案代理
  • 电子商务网站建设规划方案论文做电视的视频网站
  • 网站正能量晚上不用下载直接进入网站推广活动方案
  • 百度做个公司网站要多少钱山西建筑工程集团有限公司
  • 怎么样做网站管理员专门做音箱的网站
  • 广东省建设厅人才网站婚恋网站女生要求男生要一起做淘宝
  • 郴州微网站建设竞价服务托管公司
  • 焦作网站建设策划友情链接交换要注意哪些问题
  • Linq的join
  • 预科01Python学习
  • 5G-A:开启通信与行业变革的新时代 - 指南
  • 预科01Python复习
  • 网站部署到终端机怎么做公司简介模板100字范文
  • 大连外贸建站柳州网站建设psn118
  • 深圳建设交易中心网站首页网站关键词优化推广哪家快
  • 成都网站建设公司 四川冠辰科技php建站系统
  • 专业型企业网站有哪些太原晋民网站建设公司
  • 无锡网站推广优化公司手机商城app开发公司
  • 确定网站设计公司简报做网站引入字体
  • 网站建设合同包含网站建设前期规划方案
  • 上海网站建设百度推广公司哪家好台州网站的优化
  • 宁波咨询网站设计做家装施工的网站
  • 网站登录注册怎么做wordpress 跳转函数
  • 宜宾网站开发公司wordpress图片被拉伸
  • 域名备案和网站备案有什么不同风讯网站内容管理系统
  • 南京建设工程管理局网站如何免费申请邮箱域名
  • 东莞什么行业做网站的多wordpress禁止抓取