当前位置: 首页 > 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.hkea.cn/news/14301994/

相关文章:

  • 织梦网站仿站wordpress的翻译文件
  • 学做饼干的网站免费制作软件的网站
  • 南京网站建设公司 雷仁网络网站建设和优司怎么样
  • 襄阳市建设局网站西安搭建网站
  • php网站开发数据列表排重网站管理密码
  • 多php网站空间编程代码大全
  • 门户网站要求百姓网58同城
  • 工控人如何做自己的网站网站如何被手机端收录
  • 网站新闻详细页面设计学做网站的书哪些好
  • 数码公司网站建设的意义电脑版 做网站尺寸
  • 做网站用php个人网站可以做音乐下载网
  • 官方网站模板自己做的网站怎么设置地址
  • 微信公众号h5网站开发优化系统设置
  • 电子商务网站建设试题二怎样建立一个微信公众号
  • 网站后台密码破解教程动漫做的游戏 迅雷下载网站有哪些
  • 小程序建站公司网站标ico怎么做
  • html5 手机 手机网站wordpress内页404
  • 企业网站 建设 外包中国建设银行官网站招聘
  • 做网站还有前景么做街机棋牌上什么网站发广告
  • 海口本地网站网页设计图片的边框怎么做
  • 表述网站建设流程陕西高速公路建设集团公司网站
  • 施工者网官网长春seo排名优化
  • 外贸网站推广建设wordpress 菜单对应分类目录
  • 易经网站建设应用国内网页设计培训
  • 网站策划编辑招聘上海建设厅焊工证查询网站
  • 哪家购物网站建设好广告设计与制作烧钱吗
  • 做网站的费用如何写分录企业形象设计课程标准
  • 做家宴网站wordpress静态加速
  • 新手怎么推广自己的店铺seo工具共享网站
  • 外贸网站建设视频教程做任务什么网站