参照表外键怎么自动查找到被参照表主键值?

数据库生成主键值,参照表外键怎么自动查找到被参照表主键值?CREATE TABLE t_group (        groupid INT NOT NULL,        groupname VARCHAR(30),        PRIMARY KEY (grou...显示全部
数据库生成主键值,参照表外键怎么自动查找到被参照表主键值?


CREATE TABLE t_group (
        groupid INT NOT NULL,
        groupname VARCHAR(30),
        PRIMARY KEY (groupid)
);


CREATE TABLE t_user (
        userid INT NOT NULL,
        username VARCHAR(30),
        PRIMARY KEY (userid),


);


CREATE TABLE t_link (
        linkid INT NOT NULL,
        groupid INT,
        userid INT,
        PRIMARY KEY (linkid),
        FOREIGN KEY (groupid) REFERENCES t_group(groupid),
        FOREIGN KEY (userid) REFERENCES t_user(userid)
);


用SEQUENCE让数据库自动生成各表主键值。
CREATE SEQUENCE seq_group AS INT
  START WITH 1
  INCREMENT BY 1
  NO MAXVALUE
  NO CYCLE
  CACHE 100;


CREATE SEQUENCE seq_user AS INT
  START WITH 1
  INCREMENT BY 1
  NO MAXVALUE
  NO CYCLE
  CACHE 100;


CREATE SEQUENCE seq_link AS INT
  START WITH 1
  INCREMENT BY 1
  NO MAXVALUE
  NO CYCLE
  CACHE 100;


各表现在有这些数据待插入:
t_group:
Group1
Group2


t_user:
xiaoming
xiaohua


t_link:
Group1,xiaoming
Group2,xiaohua






对于表记录做更新操作:
INSERT INTO t_group VALUES (seq_group.nextval, 'Group1');
INSERT INTO t_group VALUES (seq_group.nextval, 'Group2');
INSERT INTO t_user VALUES (seq_user.nextval, 'xiaoming');
INSERT INTO t_user VALUES (seq_user.nextval, 'hua');


用$groupid和$userid分别表示groupid和userid的值。
INSERT INTO t_link VALUES (seq_link.nextval,$groupid,$userid);


请问怎么样让数据库能在往t_link表插数时自动查找到相应的groupid和userid的值?谢谢!收起
参与7

查看其它 5 个回答ilovebaishikele的回答

ilovebaishikeleilovebaishikele数据库管理员北京首都公路发展集团
感觉你这个场景描述的就有问题,照你这样的应该实现不了吧,欢迎大神解答
互联网服务 · 2014-10-27
浏览1126

回答者

ilovebaishikele
数据库管理员北京首都公路发展集团

ilovebaishikele 最近回答过的问题

回答状态

  • 发布时间:2014-10-27
  • 关注会员:1 人
  • 回答浏览:1126
  • X社区推广