永发信息网

请教mysql怎么实现向多个表同时插入数据

答案:2  悬赏:50  手机版
解决时间 2021-02-21 05:43
  • 提问者网友:难遇难求
  • 2021-02-20 06:36
请教mysql怎么实现向多个表同时插入数据
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-02-20 07:13
insert into table1 values(数据) insert into table2 values(数据) insert into table3 values(数据) 一起提交就是多个表同时添加
全部回答
  • 1楼网友:舍身薄凉客
  • 2021-02-20 08:16
在一个jsp 页面表单上的数据,submit 后表单上不同的数据分别同时插入不同的表. 具体表的情况是这样的的,三个表为: person 表,operator 表,contact 表,三个表的主键为objectid,通过objectid 关联. 假如只设置了person 表的objectid 是自增字段,应该如何实现? 假如objectid 不是自增字段,应该如何设计数据表? ------解决方案-------------------------------------------------------- 建一个sequence 表,在插入表之前先取得person 表的objectid,然后分别插入各张表。 存储过程也可以, 还有可以将表的默认值关联到sequence 上,这样插入的时候不需要插入这个字段,只要插入其他值就可以。 ------解决方案-------------------------------------------------------- 1、假如只设置了person 表的objectid 是自增字段,应该如何实现? -------------------- person 表objectid 是自增字段,那么可以先插入它,然后取出它。如果你使用了orm 框架,那么它会自动帮你把key 取出来帮设置好。如果没有用框架,那么用mysql 的sql 指令select last_insert_id()是可以取到你刚刚插入的记录的key的。然后吧这个值附给其他2个记录。 2、假如objectid 不是自增字段,应该如何设计数据表? -- 建议不要这样做。 非要这么做的话,可以: (1)做一个方法,在每次插入前,找到 person 表的最大的 objectid,然后加1。这种办法需要考虑的是并发冲突导致抢号事件发生,所以要考虑采用同步。 (2)做一个专门产生号码的空表,只定义一个自增字段,然后用这个表的key 作为3 个表的key。--其实跟前面的方法一样,只不过把person的自增字段移到了这个多余的表而已。 (3)专门做一个流水号表,维持一行记录,每次把流水号加 1。这种方式同样要考虑同步的问题。 综上所述,还是1 合适!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯