首页 > 解决方案 > 我对 SQL 和 Access 很陌生。我有所有这些语句来创建表,但我得到语法错误或“找不到表或约束

问题描述

正如标题所示,我在创建这两个表时遇到了问题。我做的另外两个我没有问题。我对 SQL 很陌生,并试图自学,所以我为我的无知感到抱歉,但这让我发疯。我正在使用 MS Access 2016

表 1(语法错误):

CREATE TABLE STUDENT(
studentID INTEGER,
firstName varchar(20),
lastName varchar(20),
gender char(1),
majorDept integer,
class varchar(10),
GPA NUMBER(3,2),
PRIMARY KEY(studentID),
FOREIGN key (majorDept) REFERENCES Department(deptID),
check(gender in ('M', 'F')),
check(class IN ('Freshman','Sophomore','Junior','Senior')),
CHECK (GPA >=0.00 AND GPA <=4.00)); 

表 2(表/约束误差):

CREATE TABLE Enrollment(
studentID INTEGER,
courseID integer,
PRIMARY key(studentID),
FOREIGN KEY(studentID) REFERENCES STUDENT(studentID),
FOREIGN KEY(courseID) REFERENCES Course(CourseID));

标签: sqlms-access

解决方案


第一个错误是通过声明调用的GPA NUMBER(3,2),因为NUMBER它不是 SQL 中的数据类型。将此更改为NUMERIC(3,2)orDECIMAL(3,2)将解决此问题。第二个错误是拉,因为您试图FOREIGN KEY在表上创建一个STUDENT,由于第一个错误,该表不存在。


推荐阅读