当我将数据插入到分配表中时,除了硬件和软件值,它们的编码方式与其他值完全相同,其他值都可以正常工作。我就是不明白。
这项工作:
INSERT INTO ASSIGNMENTS (ASSIGNMENT_ID, PROJECT_ID, STAFF_ID, JOB_ID)
VALUES ('A0005','B0002','ST002','J0002');
但是,当我尝试包括硬件或软件的值时,例如:
INSERT INTO ASSIGNMENTS (ASSIGNMENT_ID, PROJECT_ID, STAFF_ID, JOB_ID, HARDWARE_ID)
VALUES ('A0005','B0002','ST002','J0002','H0002');
我只得到以下错误:SQL错误:ORA-02291:完整性约束(JAS1224。SYS_C0028418)违反-找不到父密钥02291. 00000-"完整性约束(%s.%s)违反-找不到父密钥"*原因:外键值没有匹配的主键值。*操作:删除外键或添加匹配的主键。
以下是所有代码,所有表都已正确填充(硬件和软件表的编码格式与人员表完全相同):
CREATE TABLE PROJECT
(PROJECT_ID CHAR(5) NOT NULL,
PROJECT_NAME CHAR(20),
PROJECT_TYPE CHAR(20),
START_DATE DATE,
END_DATE DATE,
PRIMARY KEY (PROJECT_ID));
CREATE TABLE HARDWARE
(HARDWARE_ID CHAR(5) NOT NULL,
HARDWARE_NAME CHAR(20),
PRIMARY KEY (HARDWARE_ID));
CREATE TABLE SOFTWARE
(SOFTWARE_ID CHAR(5) NOT NULL,
SOFTWARE_NAME CHAR(20),
PRIMARY KEY (SOFTWARE_ID));
CREATE TABLE STAFF
(STAFF_ID CHAR(5) NOT NULL,
STAFF_NAME CHAR(20),
PRIMARY KEY (STAFF_ID));
CREATE TABLE JOB
(JOB_ID CHAR(5) NOT NULL,
JOB_TYPE CHAR(20),
JOB_GRADE CHAR(20),
PRIMARY KEY (JOB_ID));
CREATE TABLE ASSIGNMENTS
(ASSIGNMENT_ID CHAR(5) NOT NULL,
PROJECT_ID CHAR(5),
STAFF_ID CHAR(5),
JOB_ID CHAR(5),
HARDWARE_ID CHAR(5),
SOFTWARE_ID CHAR(5),
PRIMARY KEY (ASSIGNMENT_ID),
FOREIGN KEY (PROJECT_ID) REFERENCES PROJECT(PROJECT_ID),
FOREIGN KEY (STAFF_ID) REFERENCES STAFF(STAFF_ID),
FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID),
FOREIGN KEY (HARDWARE_ID) REFERENCES HARDWARE(HARDWARE_ID),
FOREIGN KEY (SOFTWARE_ID) REFERENCES SOFTWARE(SOFTWARE_ID));
错误消息一开始可能有点神秘,但很清楚。
两个INSERT
s之间的唯一区别在于HARDWARE\u ID
。因此'H0002'
不是有效的硬件ID
。它不在硬件
表中。
我正在使用Eclipse和Gradle。Twilio被列为依赖项。所有版本都是最新的。引用Gradle的代码将无法编译,并返回Twilio类不存在的错误消息。在线代码令人沮丧地过时了。我希望这里有人能帮忙。 我正在运行的代码非常基本:
问题内容: 我创建了一个整数列表,并试图返回特定值的索引。该数组是3,8,2,5,1,4,7,6并且我想返回indexOf(3),应该为0。 导入java.util。*后,我在Eclipse Java Scrapbook中尝试了以下操作: 我也尝试过: 两者都返回-1。为什么?如何使它按预期工作? 问题答案: 它不是为了使它起作用。
问题内容: 为什么在使用sudo时找不到命令“ bundle”: 但是在不使用sudo时确实存在: 我问的原因是我正在关注https://github.com/gitlabhq/gitlab- recipes/tree/master/install/centos ,它指出要使用sudo。 所述添加标志…引发’bundle:命令未找到’错误,但显示“此帐户当前不可用”。 问题答案: 使用和不检查的值
为什么在使用sudo时找不到命令"bundle": 但不使用sudo时不存在: 我问的原因是我在https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos,它表示使用sudo。 我尝试添加一个标志,如使用$sudo bundle exec所述。。。引发“bundle:command not found”错误,但获取“此
问题内容: 我正在尝试打开一个保存在源文件夹本身中的CSV文件名“ logger.csv”。 但是,这一直在给我一个“找不到文件”错误。 问题答案: 如果您现在就使用相对路径,则该文件需要存在于项目根目录中, 而不是 存在于java文件的目录中。 考虑以下层次结构: 不管用。 将 现在 的工作。(注意,该文件与src目录相邻。)
我正在尝试使用GitHub将Gradle Java应用程序部署到Heroku。回购协议的名称是“v-m-test”。这是我目前使用的Procfile:web:java-jar-target/v-m-test。罐子这是错误的文件吗?