oracle00936缺失表达式_语法错误:缺失表达式(ORA-00936)

我有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

是的,您的表格结构是正确的,但您是否正确添加记录? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值