数据库插入数据,采用自增ID,想在插入数据的同时把数据对应ID附加到数据尾部。mysql_insert_id()可以结合update来实现,但效率很低,有没有更快的方法呢?求教!目前我的方法是 插入数据  56   id 1update set  56.1 这样更改字段的方法,效率非常低哦

解决方案 »

  1.   

    用TRIGGER实现?
    set new.字段=concat(56,new.id)
      

  2.   

    没有好的办法。 因为MYSQL无法预知下一个产生的ID是多少。只有在INSERT之后再知道ID。
      

  3.   

    可以插入数据时 利用mysql_insert_id()获取ID 再更改字段 把ID附加到数据上 但这样效率很低 生成大量数据时很慢  想要效率高点的方法 不知道怎么搞了  
      

  4.   

    一种解决方案就是象其它数据库一样,自己创建一个表 xxx (seqno bigint auto_increment primary key)然后在
    insert into xxx values(null);
    insert into table1(id,col1,col2) values (LAST_INSERT_ID(),56,concat(56,'.',LAST_INSERT_ID());
      

  5.   

    update还好吧.直接update table set col1 =concat(col2,col1)
      

  6.   

    个人觉得,还是直接用UPDATE比较稍事。另外如果这个字符永远=  56.1 这种,则这个字段完全是冗余字段,如果不是特别的查询效率上的要求,则在表中根本不需要有这个字段。可以在查询中或者视图中实现。另外:这个问题无法用触发器直接解决。
      

  7.   

    ID附加到数据尾部干嘛取数据的时候直接select concat(字段,id)