【问题标题】:how do I make the right references in oracle如何在 oracle 中进行正确的引用
【发布时间】:2022-01-10 15:33:45
【问题描述】:

我这样写了这个 SQL 脚本,但我不知道缺少什么

create table Reggister(
stdNo CHAR(5),
courseID CHAR(8),
semesterID CHAR(5),
grade CHAR(2),
mark DECIMAL(4,2) check(BETWEEN 0.00 and 100.00),
foreign key (stdNo) references student(stdNo),
foreign key (courseID) references course(courseID),
foreign key (semesterID) references semester(semesterID),
primary key (stdNo, courseID, semesterID)
);

它会给我类似的东西 ORA-00936: 缺少表达式

【问题讨论】:

  • 至少BETWEEN 0.00 and 100.00 应该是mark BETWEEN 0.00 and 100.00
  • 谢谢我添加了它

标签: sql oracle


【解决方案1】:

我解决了

create table Reggister(
stdNo CHAR(5),
courseID CHAR(8),
semesterID CHAR(5),
grade CHAR(2),
mark DECIMAL(4,2) check(mark BETWEEN 0.00 and 100.00),
foreign key (stdNo) references student(stdNo),
foreign key (courseID) references course(courseID),
foreign key (semesterID) references semester(semesterID)
);

【讨论】:

    【解决方案2】:

    Jeff Holt 的评论就是答案。 BETWEEN 运算符的语法是:

    expression [ NOT ] BETWEEN low AND high
    

    所以你只是在检查约束的范围部分缺少要测试的表达式。应该是:

    check(mark BETWEEN 0.00 and 100.00)
    

    当架构中存在外键声明中的表和列时,脚本的其余部分就可以工作。

    【讨论】:

      猜你喜欢
      • 2015-06-22
      • 1970-01-01
      • 2020-11-24
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多