现在有A表,和B表,现在在后台添加信息到A表,在insert之前要把与当前信息的有关的有些东西写到写到B表(A表和B表的关系是1对多的)这样就需要当前信息的ID,这个在编辑信息是可以的,因为编辑信息能获取当前信息的ID,但是在添加信息的时候就不行了,
因为不知道当前表的ID,
想通过sql获取A表的最后一条信息ID,然后加1,这应该是当前信息的ID了,但是如果这时候别人也在操作这个数据表的话,就不行了啊。
SQL好像有触发器什么的,不知道怎么实现,请高手帮忙一下,谢谢。
因为不知道当前表的ID,
想通过sql获取A表的最后一条信息ID,然后加1,这应该是当前信息的ID了,但是如果这时候别人也在操作这个数据表的话,就不行了啊。
SQL好像有触发器什么的,不知道怎么实现,请高手帮忙一下,谢谢。
mysql_insert_id($link_id);
可以在A表和B表建个字段id2
这个ID2产生条件是当前时间戳+随机数据
这样A表和B表不就有关联了吗
=================================
你说的“别人也在操作”已是另一个数据库连接,mysql_insert_id值和当前会话挂钩的,至少php手册和mysql手册都告诉你了。php:mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号
mysql:
The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients.
呵呵,说的也是哈,但是现在线路和日期是同时间添加的,假如现在添加一条线路,步骤是:
标题:***
出发时间及价格:(这就是操作表B的,添加价格,门票等,OK后保存)
内容:***
提交
按照目前流程,是先把儿子安定好,老子再干事。实在不行,在添加信息的时候提示一下:保存后再来信息这条信息。全这样用户体验效果差些。
是这样的吗?
如果是,这个过程就有点类似购物车了(先选商品,后结账)
所以你也可以套用商城代码你可以在 OK后 保存时产生唯一键,比如 sessionid、B 的last_insert_id等,作为 B 的键
待主表单提交,生成了线路id后再修改过去
我加卫个timeid=time()+rand(1000,9999)
这个应该不会冲突吧,
要是同一秒同有多个人同时加信息,并且产生的四个随机数据也一样,我马上就去买彩票。