我有2个表,Facilities和Services。语法错误:缺失表达式(ORA-00936)
CREATE TABLE Facilities (
facility_id NUMBER(2) NOT NULL,
facility_name VARCHAR2(20) NOT NULL,
CONSTRAINT pk_facil_id PRIMARY KEY (facility_id)
);
CREATE TABLE Services (
service_id NUMBER(2) NOT NULL,
service_name VARCHAR(20) NOT NULL,
service_facility NUMBER(2) NOT NULL,
CONSTRAINT pk_serviceid PRIMARY KEY (service_id)
);
ALTER TABLE Services
add CONSTRAINT fk_servicefacility FOREIGN KEY(service_facility)
REFERENCES Facilities(facility_id);
如果我尝试输入记录到“服务”的表像这样:
INSERT INTO Services (service_id, service_name, service_facility)
SELECT 06, 'Rooms',
(SELECT facility_id, FROM Facilities WHERE facility_name = 'Hotel')
FROM Dual;
我得到了3一个错误“失踪表达”出了7个INSERT语句。缺少什么表达?
+0
您的服务应该有一个FacilityID,这是Facility表上主键的外键。 Facility表不应该有对Service表的引用。然后您需要为设施中的每项服务创建服务记录。因此,如果2个设施提供水,那么你将有2个服务记录,一个用于水和设施1,一个用于水和设施2 –
+0
@StefanH我不知道你是否明白我想要做什么。我有一个设施说'健康中心'。这个健康中心可以有一个“健身房”,“水池”和“温泉”。然而,我不希望“健身房”可用于任何其他设施 –
+0
是的,您的表格结构是正确的,但您是否正确添加记录? –