我有两个表:合同表头 和 合同明细
两个表都有合同编码这个字段,但是这个字段又是要自动生成的。那我在录入数据时,应该怎样控制才能使得这个系统生成的序列号同时加入到这两表中呢?请赐教!

解决方案 »

  1.   

    一个表用自动增长,一个不用。先insert自动增长的,然后用last_id()得到ID,在insert下个表。
      

  2.   

    如果你的mySQL版本高于5则可用trigger实现[align=center]====  ====
    [/align]
      

  3.   

    以下摘自 MySQL 5.1 Reference Manual
    [align=center]====  ====
    [/align]
      

  4.   

    由于您有部分未结贴,所以特此介绍一下结贴的方法如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 [管理] ,进入页面后就可以输入密码,分别给分,结帖。 
     或参考:
    http://www.csdn.net/help/over.asp
    http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
    =============================================================================
    问题解决,请及时结贴。  
     正确结贴方法:    
     管理帖子-->给分-->输入密码-->结贴[align=center]====  ====
    [/align]
      

  5.   

    但是,我要实现的是,除了通过触发器或者last_id实现第二个表的序列号之外,还有别的数据要插入!
    要触发器里只能增加这一个字段,后来我就用last_id().但是,要连续执行两句sql语句,它老是出现问题,有时只能执行一个语句。我想请你们说一个execute,executeUpdate和executeQuery三个方法具体有什么区别是,两条sql语句的哪些操作会产生产冲突。
    我想到两种实现插入的方法,一是通过触发器先把附表序列号自动生成,然后在执行完第一条insert语句后,用update通过序列号等于last_id()再插入别的数据;
    二是,执行完第一句insert语句后,再用一条insert语句,id设置为last_id();
    请问我该如何实现?
    同时,请回答一下执行sql语句的三个语句的区别和具体注意的地方,还有last_id()和last_insert_id()都一样吗?