INSERT problems: reference
Jump to navigation
Jump to search
Can't INSERT because of reference.
schema:scott
If a foreign key is set up between two tables it may be that you cannot insert unless a related record exists. In this example we cannot add ('Tom', 'ma') to t_staff table unless we first create a maths department ('ma', 'Mathematics') in the t_dept table.
CREATE TABLE t_dept( id CHAR(2) ,fname VARCHAR(20) ,PRIMARY KEY(id)); CREATE TABLE t_staff( name VARCHAR(20) ,dept CHAR(2) ,PRIMARY KEY(name) ,FOREIGN KEY(dept) REFERENCES t_dept(id))
DROP TABLE t_staff;
DROP TABLE t_dept;
CREATE TABLE t_dept(id CHAR(2), fname VARCHAR(20),PRIMARY KEY(id));
CREATE TABLE t_staff(name VARCHAR(20), dept CHAR(2),PRIMARY KEY(name),FOREIGN KEY(dept) REFERENCES t_dept(id));
INSERT INTO t_dept VALUES ('co','computing');
INSERT INTO t_staff VALUES ('andrew','co');
INSERT INTO t_staff VALUES ('tom', 'ma');
SELECT * FROM t_staff