站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题两个表关联,A表插入数据的同时,B表也增加一条数据,外键关联,如何实现?

两个表关联,A表插入数据的同时,B表也增加一条数据,外键关联,如何实现?

摘要: 两个表关联,A表插入数据的同时,B表也增加一条数据,外键关联,如何实现?


全部分都在这了,大家多多帮忙吧。

mysql5.0的数据库,user存储用户名密码,user_info存储这个用户详细信息。

所以,user表创建一条数据user_info也需要同时创建数据,user表的user_id更新user_info表的user_id也需要同时更新,也就是一一对应。

我现在想到的是两个表用外键关联,在user_info表的外键上加上delete cascade和update cascade,以实现同步更新和删除,现在问题是user新增数据时怎么让user_info也新增数据,并且使user_info里的user_id与user中的user_id相等,具体怎么实现呢?

表结构如下:

user表:
create table user(
user_id int unsigned auto_increment not null,
password varchar(16),
primary key (id)
);

user_info表:
create table user_info(
id int unsigned auto_increment not null,
user_id int unsigned not null,
user_email varchar(20),
primary key (id),
foreign key (user_id) references user(user_id) on delete cascade on update cascade
);



会的大侠帮忙解决一下
多谢了


我认为你写两个sql语句不就行了,不过注意主键问题


关注中。。。


编写触发器不可以吗


触发器


如果单纯是维护数据库的话,可以写触发器。
如果是做应用程序的话,建议还是把数据库的关联简化到最低,最好是单表,便于以后的数据库的移植。


那两个表之间怎么关联呢?
只用一个外键就可以了是吗?


create table user(
user_id int unsigned auto_increment not null,
password varchar(16),
primary key (id)
);

user_info表:
create table user_info(
id int unsigned auto_increment not null,
user_id int unsigned not null,
user_email varchar(20),
primary key (id)
);
在数据库中把关联关系去掉,把关系交给项目的业务层代码实现。


最好不要关联,在逻辑中实现。

我们一般这么处理:

1、数据库设置主外键约束
2、应用逻辑中使用事务,保证两个表的增删改一致,即同时增加,修改和删除


↑返回目录
前一篇: hibernate struts spring框架,前台页面如何读取数据库信息?
后一篇: response.sendRedirect()问题