如何在插入过程中插入引用与另一个表的关系的外键。
我正在尝试将带有现有乐队的 CD“duck”插入乐队表中。
插入 CD(标题、年份)值('Ducks',2013);
我的应用程序是用 Java 编写的,有 2 个类:
Band class:
String name
int year
ArrayList<String> members
CD class:
String title
int year
SQL 表
CREATE TABLE BAND
(
BAND_ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(50),
YEAR INT,
PRIMARY KEY(BAND_ID)
);
CREATE TABLE CD
(
CD_ID INT NOT NULL AUTO_INCREMENT,
TITLE VARCHAR(50),
YEAR INT,
B_ID INT,
PRIMARY KEY(CD_ID),
FOREIGN KEY(B_ID) REFERENCES BAND(BAND_ID)
);
CREATE TABLE MEMBER
(
MEMBER_ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(50),
B_ID INT,
PRIMARY KEY(MEMBER_ID),
FOREIGN KEY(B_ID) REFERENCES BAND(BAND_ID)
);
最佳答案
就像这样:
INSERT INTO CD (TITLE, YEAR, B_ID) VALUES ('Ducks', 2013, THEBANDID);
但是您要使用的 B_ID 必须存在于表 Bands 中。所以你可以在插入之前检查一下
SELECT * FROM BAND WHERE BAND_ID = THEBANDID
关于MYSQL 插入外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768845/