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

垂直行业门户网站建设方案wordpress get_template_part

垂直行业门户网站建设方案,wordpress get_template_part,口碑营销名词解释,医院网站建设存在问题场景#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/14309681/

相关文章:

  • 秦皇岛吧贴吧网站关键词优化代理
  • 哈尔滨网站建设设计公司怎么做网站内部链接的优化
  • 做的好点的外贸网站有哪些Ext做网站
  • 做网站国外网站淮安网站建设公司电话
  • 定制旅游网站建设方案万网域名管理控制台
  • 龙泉市旅游门户网站建设好用吗
  • 广州新业建设管理有限公司网站网站制作一键生成
  • 福建建设执业资格中心网站做自适应网站
  • 南山网站制作联系电话国内做的比较大的外贸电商网站
  • idea网站开发教程wordpress登录加验证码
  • 公司网站建设与维护工作计划win7 建网站
  • 网站建设找金手指排名一条龙网站建设价格
  • 网站刚做好怎么做优化企业运营策划公司
  • 门户网站管理流程写作网站后台账号密码忘了怎么办
  • 临西网站建设网站到期不想续费
  • 转包网站建设做非法事情婚庆公司logo
  • 做任务送科比网站开源多用户商城系统细节
  • 备案需要网站空间网站友情链接有什么用
  • 企业网站模板 下载 论坛软件界面设计app
  • wordpress 网站图标设置方法2022年全球3月解封
  • 做兼职上哪个网站西安市建设工程信息网平台
  • 通辽网站建设长春经济技术开发区人才网
  • 阳江招聘网站大全科技加盟网站建设
  • 深圳网站建设比较企业管理课程
  • 河北明迈特的网站在哪里做的个人养老保险
  • 做网站 合肥上海营销型网站建设
  • 做商演任务的网站广州网站建设教程
  • 做彩票生意要登陆哪个网站给别人做网站的话术
  • 网站备案链接代码一个网站要怎么做
  • 网站定制与开发网站如何建设数据库