Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DB如何将外键的值插入表列_Java_Sql_Netbeans_Derby_Javadb - Fatal编程技术网

Java DB如何将外键的值插入表列

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

我将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 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的值