参照表外键怎么自动查找到被参照表主键值?
数据库生成主键值,参照表外键怎么自动查找到被参照表主键值?
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的值?谢谢!