跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问有没有比较好的办法在插入 mysql 的时候,把自动生成 id 同时加到另一个字段
未分類
23 10 月 2020

请问有没有比较好的办法在插入 mysql 的时候,把自动生成 id 同时加到另一个字段

请问有没有比较好的办法在插入 mysql 的时候,把自动生成 id 同时加到另一个字段

資深大佬 : meteor2013 7

谢谢啊

对了,不用 trigger 实现

大佬有話說 (25)

  • 資深大佬 : luckyrayyy

    完全想不到这么做的意义….

  • 主 資深大佬 : meteor2013

    @luckyrayyy 兄台,有些时候一言难尽。能否只提供办法

  • 資深大佬 : Jacky23333

    分两步啊

  • 資深大佬 : wsfdljy

    建个 view 查询的时候用,然后把 id 那个字段取两个别名。

  • 資深大佬 : wsfdljy

    非要存两列,可以试下在一个事务里:先 insert,然后 update table set xx=LAST_INSERT_ID() where id = LAST_INSERT_ID();
    只是一个想法,没验证过,你自己试一下。

  • 資深大佬 : lpts007

    “一言难尽”的事能具体说说吗,大家对此很好奇。问题本身根本不关心。

    e.g. 我坐地铁前必须把拳头塞进嘴里,但是嘴巴撑得慌,请问大家有什么好办法?
    提出这种问题,不要怪大家问你为什么要塞进嘴里

  • 資深大佬 : lpts007

    https://www.v2ex.com/t/685827#reply9

    问题最终怎么解决的,也不回来做记录。再过 100 天又是一贴~

  • 資深大佬 : airqj

    虚拟列也许可以

  • 資深大佬 : GiantHard

    不知道用这个函数行不行 https://www.w3schools.com/sql/func_mysql_last_insert_id.asp

  • 資深大佬 : iminto

    很简单,模拟序列就好了

  • 資深大佬 : defage

    来个存储过程就好了。
    这个在很多需要审计的数据中很常见,DB 一层记录行为,防止有人利用程序干涉数据安全

  • 資深大佬 : defage

    不用触发器相当于就是要尿尿又不让用 jj

  • 資深大佬 : makia98

    用事务啊

  • 資深大佬 : 1194129822

    没什么一步方法,LAST_INSERT_ID()线程安全,但是是 connection 连接后上一个插入的自增 id,没插入前还没生成。
    select auto_increment from information_schema.tables where table_schema =’db_name’ and table_name=’xxx’;
    线程不安全,auto_increment connection 共享。
    所以保证原子性,一致性。只能用事务,先插入再更新。

  • 資深大佬 : DavidNineRoc

    所以说有什么用呢?

  • 資深大佬 : gochat

    @lpts007 我说一个我之前看到的很傻的场景,前端要求后端生成分享的 url,一个表里面假设有 id,share_url 两个字段,而 share_url (假设为: https://www.test.com/test/test?id=xxx )中的 GET 参数有个 id 字段,等于当前表里的 id,你在新增表记录的时候,并不知道这个 id 是多少,只能 insert 后再去 update 。

  • 資深大佬 : seanxx

    手动生成,不用自增

  • 資深大佬 : lpts007

    @gochat 表里存不存 url,前端管的到这个?

  • 資深大佬 : mosliu

    @defage 这个世界上尿尿不用 jj 的还是有一半人的。。。
    想半天。

  • 資深大佬 : gochat

    @lpts007 接口读不大到这个 url,那就出出错啊,我说的是这个场景,这个 url 必须你提供,但 url 地址又跟自增 id 有关系,在新增的时候你又不知道 id 是多少,听明白了之间的矛盾了不

  • 資深大佬 : DoUSeeMe

    @lpts007 #6 虽然我也好奇,但是拳头塞嘴里这个举例有点过了。。。

  • 資深大佬 : lpts007

    @gochat 表里就是不存,查的时候,接口里处理好给前端,前端不答应?重复网址往数据库里塞是看不起通管局还是公司前端负责表结构?

    我的表达是否清楚?

  • 資深大佬 : gochat

    @lpts007 规则都说不定,搞不好还是自定义配置的 url (此时 id 参数不需要),日积月累的,现实还真不是你想的那么简单,所以我说这是很傻的

  • 資深大佬 : lpts007

    @gochat
    规则都说不定
    谢谢,了解了,舒服了。

  • 資深大佬 : cbasil

    @gochat 分享 url 中 id 字段为什么要用自增 id 呢,手动生成一个唯一字段 share_id,可以根据用户 uid 和时间戳生成,然后查询和 url 中用 share_id 作为参数。就不需要 insert 再去 update 了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具