Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 如何将ID信息从一个表传输到另一个表?_Java_Mysql_Sql_Database_Netbeans - Fatal编程技术网

Java 如何将ID信息从一个表传输到另一个表?

Java 如何将ID信息从一个表传输到另一个表?,java,mysql,sql,database,netbeans,Java,Mysql,Sql,Database,Netbeans,我使用SQL已经有一段时间了,我创建了三个关于employee数据库和admin数据库的数据库表。admin表仅在员工为admin时获取员工信息。我使用循环语句来控制注册是否说用户是admin,然后将信息存储在两个表中。然而,当它将信息从员工复制/传输到管理数据库时,我不断在员工ID中获取空值。我以前创建过几个数据库,并设法在两个或多个数据库之间创建了链接,但对于这一个,我无法理解错误以及它在管理数据库中存储空值的原因。代码运行并创建数据库,但是,我在EMP_ID部分遇到以下错误: [Excep

我使用SQL已经有一段时间了,我创建了三个关于employee数据库和admin数据库的数据库表。admin表仅在员工为admin时获取员工信息。我使用循环语句来控制注册是否说用户是admin,然后将信息存储在两个表中。然而,当它将信息从员工复制/传输到管理数据库时,我不断在员工ID中获取空值。我以前创建过几个数据库,并设法在两个或多个数据库之间创建了链接,但对于这一个,我无法理解错误以及它在管理数据库中存储空值的原因。代码运行并创建数据库,但是,我在EMP_ID部分遇到以下错误:

[Exception, Error code 30,000, SQLState X0Y44] Constraint 'SQL210603141144600' is invalid: there is no unique or primary key constraint on table '"APP"."ADMINDB"' that matches the number and types of the columns in the foreign key.
Line 38, column 1
请参阅下面的代码:

-- CREATING TABLES:
-- CREATING EMPLOYEE DATABASE TABLE:
CREATE TABLE APP.EMPDB(
EMP_ID INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
EMAIL VARCHAR(255) UNIQUE,
PASSWORD VARCHAR(255),
FIRSTNAME VARCHAR(255),
LASTNAME VARCHAR(255),
GENDER CHAR(6),
DATEOFBIRTH DATE,
OCCUPATION VARCHAR(255),
PHONENUMBER VARCHAR(255));

-- CREATING ADMIN DATABASE TABLE:
CREATE TABLE APP.ADMINDB(
ADMIN_ID INT GENERATED ALWAYS AS IDENTITY,
EMAIL VARCHAR(255),
CONSTRAINT ADMIN_ID PRIMARY KEY (ADMIN_ID,EMAIL),
PASSWORD VARCHAR(255),
FIRSTNAME VARCHAR(255),
LASTNAME VARCHAR(255),
JOBPOSITION VARCHAR(255),
EMP_ID INT);

-- INDEXING AND REFERENCING:
-- EMPLOYEE DATABASE TABLE:
-- ALTER TABLE APP.EMPDB ADD FOREIGN KEY (EMAIL) REFERENCES APP.ADMINDB(EMAIL);
CREATE INDEX EMAIL ON APP.EMPDB(EMAIL);
CREATE INDEX EMP_ID ON APP.EMPDB(EMP_ID);

-- ADMIN DATABASE TABLE:
ALTER TABLE APP.ADMINDB ADD FOREIGN KEY (EMP_ID) REFERENCES APP.EMPDB(EMP_ID);
CREATE INDEX EMP_ID ON APP.ADMINDB (EMP_ID);

ALTER TABLE APP.ADMINDB ADD FOREIGN KEY (EMAIL) REFERENCES APP.EMPDB(EMAIL);
INSERT INTO APP.ADMINDB (EMP_ID, EMAIL)
SELECT EMP_ID, EMAIL  FROM APP.EMPDB;
编辑1:

我将代码修改为以下内容:

-- CREATING TABLES:    
-- CREATING EMPLOYEE DATABASE TABLE:
CREATE TABLE APP.EMPDB(
EMP_ID INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
EMAIL VARCHAR(255),
PASSWORD VARCHAR(255),
FIRSTNAME VARCHAR(255),
LASTNAME VARCHAR(255),
GENDER CHAR(6),
DATEOFBIRTH DATE,
OCCUPATION VARCHAR(255),
PHONENUMBER VARCHAR(255),
ADMIN_ID INT);

-- CREATING ADMIN DATABASE TABLE:
CREATE TABLE APP.ADMINDB(
ADMIN_ID INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
EMAIL VARCHAR(255),
-- EMP_ID INT UNIQUE,
-- CONSTRAINT ADMIN_ID  (ADMIN_ID,EMAIL),
PASSWORD VARCHAR(255),
FIRSTNAME VARCHAR(255),
LASTNAME VARCHAR(255),
JOBPOSITION VARCHAR(255),
EMP_ID INT);

-- INDEXING AND REFERENCING:
-- EMPLOYEE DATABASE TABLE:
-- ALTER TABLE APP.EMPDB ADD FOREIGN KEY (EMAIL) REFERENCES APP.ADMINDB(EMAIL);
CREATE INDEX EMAIL ON APP.EMPDB(EMAIL);

-- ALTER TABLE APP.EMPDB ADD CONSTRAINT EMP_ID FOREIGN KEY (EMP_ID) REFERENCES APP.ADMINDB(EMP_ID);
CREATE INDEX EMP_ID ON APP.EMPDB(EMP_ID);

ALTER TABLE APP.EMPDB ADD CONSTRAINT FK_EMPAD_ID FOREIGN KEY (ADMIN_ID) REFERENCES APP.ADMINDB(ADMIN_ID);
CREATE INDEX ADMIN_ID ON APP.ADMINDB (ADMIN_ID);
INSERT INTO APP.EMPDB (ADMIN_ID)
SELECT ADMIN_ID FROM APP.ADMINDB;

-- ADMIN DATABASE TABLE:
ALTER TABLE APP.ADMINDB ADD CONSTRAINT FK_ADEMP_ID FOREIGN KEY (EMP_ID) REFERENCES APP.EMPDB(EMP_ID);
CREATE INDEX EMP_ID ON APP.ADMINDB (EMP_ID);
INSERT INTO APP.ADMINDB (EMP_ID)
SELECT EMP_ID  FROM APP.EMPDB;
没有错误,但是,我一直在其他数据库中获取每个ADMIN_ID和EMP_ID中的空值。为什么它不能将数据链接在一起