向该表添加外键时出现错误:
第 2/16 行错误:ORA-02298:无法验证 (.FK_PATIENT_APPOINTMENT) - 未找到父密钥
这是我正在使用的 SQL:
ALTER TABLE Patient
ADD CONSTRAINT fk_patient_appointment
FOREIGN KEY (Appointment_ID)
REFERENCES Appointment(Appointment_ID);
表格是使用以下方式创建的:
CREATE TABLE Appointment
(
Appointment_ID INT,
AppointmentDate DATE,
AppointmentTime TIMESTAMP,
AppointmentLocation VARCHAR2(255),
Nurse_ID INT,
Intervention_ID INT,
PRIMARY KEY (Appointment_ID)
);
CREATE TABLE Patient
(
Patient_ID INT,
PatientFirstName VARCHAR2(50),
PatientLastName VARCHAR2(50),
PatientDOB DATE,
PatientContact VARCHAR2(20),
PatientAddress VARCHAR2(255),
PatientGP VARCHAR2(50),
PatientAlert VARCHAR2(255),
Appointment_ID INT,
PRIMARY KEY (Patient_ID)
);
我删除了
Patient
表,以确保它与此处的代码完全相同。
以下是我尝试添加的外键;只有带有
Patient
的那些才无法正常工作。我无法在保存的创建的表中手动添加外键。
-- This causes the error
ALTER TABLE PATIENT
ADD CONSTRAINT fk_appointment_id
FOREIGN KEY (Appointment_ID)
REFERENCES Appointment (Appointment_ID);
非常感谢任何帮助,谢谢
我知道这是基本的 SQL 编码,但我只需要通过我的作业并显示有效的 SQL,这样我就可以查询表!
任何帮助将不胜感激,因为我在其他地方找不到答案
您的代码有效。 小提琴
您似乎已在创建约束之前将数据放入表中。
要么:
TRUNCATE TABLE patient;
appointment
表中没有匹配值的行。
DELETE FROM patient p
WHERE NOT EXISTS (SELECT 1
FROM appointment a
WHERE a.Appointment_ID = p.Appointment_ID);
appointment
表中,以查找所有错过预约的患者。
INSERT
将数据放回表中(前提是约束有效)。