Java DB如何将外键的值插入表列
我将java DB数据库和NetBeans 8.0用于桌面应用程序Java DB如何将外键的值插入表列,java,sql,netbeans,derby,javadb,Java,Sql,Netbeans,Derby,Javadb,我将java DB数据库和NetBeans 8.0用于桌面应用程序 我还使用PreparedStatement查询数据库 下面是创建表的代码 CREATE TABLE ALUMNUS ( ALUMNUA_ID INT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), FIRST_NAME VARCHAR (45), LAST_NAME VARCHA
我还使用PreparedStatement查询数据库 下面是创建表的代码
CREATE TABLE ALUMNUS (
ALUMNUA_ID INT NOT NULL PRIMARY KEY
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
FIRST_NAME VARCHAR (45),
LAST_NAME VARCHAR (45),
OTHER_NAME VARCHAR (100)
);
CREATE TABLE DUES (
ID INT NOT NULL PRIMARY KEY
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
PAYMENT_YEAR DATE,
AMOUNT DOUBLE,
ALUMNUS_ID INT
);
--FOREIGN KEY
ALTER TABLE APP.DUES
ADD FOREIGN KEY (ALUMNUS_ID) REFERENCES APP.ALUMNUS(ID);
现在我想在APP.DUES表中插入、删除和更新外键值。什么是最好的选择;触发器、存储过程还是preparedstatement
举个例子就好了。如果您想主要插入到DUES表中,您可以在SQL中使用sub-select。我还没有用Java DB测试过它,但它基本上看起来像:
INSERT INTO DUES(PAYMENT_YEAR, AMOUNT,ALUMNUS_ID)
VALUES(2014, 100.0,
(SELECT ALUMNUA_ID from ALUMNUS where ...));
您需要捕获“notfound”错误案例并在插入前添加一个插入(并且还需要捕获重复案例)
另请参见:这里有问题吗?问题是如何在APP.DUES表中的外键ALUMNUS\u ID列中插入引用APP.ALUMNUS表中ALUMNUS\u ID的值