首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySQL创建表时遇到问题

使用MySQL创建表时遇到问题
EN

Stack Overflow用户
提问于 2015-09-23 08:36:59
回答 1查看 30关注 0票数 0

我目前正在学习MySQL,我正在尝试创建一个数据库和一些表。我的两个表出了问题,而我的生命却看不出我错过了什么。

引发错误的两个表是: MAINTANANCE_REPAIR和TRIP。

如果有人能发现我错过了什么,那将是非常有帮助的。谢谢!

代码语言:javascript
复制
CREATE DATABASE IF NOT EXISTS CTSDB30091479;
use CTSDB30091479;

CREATE TABLE IF NOT EXISTS LANGUAGE(
  LanguageCode CHAR(2) PRIMARY KEY,
  LanguageName VARCHAR(50)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS COUNTRY(
  CountryCode CHAR(2) PRIMARY KEY,
  CountryName VARCHAR(50)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS COUNTRY_LANGUAGE(
  CountryCode CHAR(2),
  LanguageCode VARCHAR(50),
  PRIMARY KEY(CountryCode, LanguageCode),
  FOREIGN KEY(CountryCode) REFERENCES COUNTRY(CountryCode),
  FOREIGN KEY(LanguageCode) REFERENCES LANGUAGE(LanguageCode)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS LOCATION_TYPE(
  LocTypeID INT AUTO_INCREMENT PRIMARY KEY,
  LocTypeDescription VARCHAR(40)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS LOCATION(
  LocationID INT AUTO_INCREMENT PRIMARY KEY,
  StreetNo VARCHAR(5),
  StreetName VARCHAR(50),
  City VARCHAR(30),
  LocTypeID INT,
  FOREIGN KEY(LocTypeID) REFERENCES LOCATION_TYPE(LocTypeID)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS DRIVER(
  DriverLicenseNum VARCHAR(18) PRIMARY KEY,
  DriverFirstName VARCHAR(20),
  DriverLastName VARCHAR(20),
  ClearenceLevel CHAR(1),
  HasSecurity CHAR(1),
  HasFirstAid CHAR(1),
  IsAvailable CHAR(1)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS DRIVER_LANGUAGE(
  LanguageCode CHAR(2),
  DriverLicenseNum VARCHAR(18),
  PRIMARY KEY(LanguageCode, DriverLicenseNum),
  FOREIGN KEY(LanguageCode) REFERENCES LANGUAGE(LanguageCode),
  FOREIGN KEY(DriverLicenseNum) REFERENCES DRIVER(DriverLicenseNum)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS CERTIFYING_BODY(
  CertBodyID INT AUTO_INCREMENT PRIMARY KEY,
  CertBodyName VARCHAR(18)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS DRIVER_SECURITY(
  DriverLicenseNum VARCHAR(18) PRIMARY KEY,
  CertBodyID INT(50),
  SecurityLevel CHAR(1),
  CertDate DATE,
  FOREIGN KEY (DriverLicenseNum) REFERENCES DRIVER(DriverLicenseNum),
  FOREIGN KEY (CertBodyID) REFERENCES CERTIFYING_BODY(CertBodyID)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS DRIVER_FIRSTAID(
  DriverLicenseNum VARCHAR(18) PRIMARY KEY,
  FirstAidLevel CHAR(1),
  FirstAidDate DATE,
  FOREIGN KEY (DriverLicenseNum) REFERENCES DRIVER(DriverLicenseNum)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS VEHICLE(
  VIN CHAR(17) PRIMARY KEY,
  VEH_Make VARCHAR(30),
  VEH_Model VARCHAR(30),
  VEH_Colour VARCHAR(20),
  VEH_RegoNum CHAR(6),
  VEH_Odometer INT(6),
  VEH_Availability CHAR(1),
  VEH_SeatCapacity INT(2)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS MAINTANANCE_REPAIR(
  VIN CHAR(17),
  OdometerReading INT(6),
  MR_Type CHAR(1),
  MR_Date DATE,
  MR_Cost DECIMAL,
  MR_Details VARCHAR(100),
  PRIMARY KEY(VIN, OdometerReading),
  FOREIGN KEY(VIN) REFERENCES VEHICLE(VIN),
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS OFFICIAL_ROLE(
  RoleID INT AUTO_INCREMENT PRIMARY KEY,
  RoleDescription VARCHAR(40)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS OFFICIAL(
  OfficialID CHAR(8) PRIMARY KEY,
  LanguageCode CHAR(2),
  CountryCode CHAR(2),
  OfficialFirstName VARCHAR(40),
  OfficialLastName VARCHAR(40),
  OfficialRole INT,
  FOREIGN KEY (LanguageCode) REFERENCES LANGUAGE(LanguageCode),
  FOREIGN KEY (CountryCode) REFERENCES COUNTRY(CountryCode),
  FOREIGN KEY (OfficialRole) REFERENCES OFFICIAL_ROLE(RoleID)
)
Engine=InnoDB;

CREATE TABLE IF NOT EXISTS TRIP(
  BookingRefNum INT AUTO_INCREMENT PRIMARY KEY,
  VIN CHAR(17),
  DriverLicenseNum CHAR(18),
  OfficialID CHAR(8),
  PickUpLocID INT,
  DropOffLocID INT,
  StartTimeIntended DATETIME,
  EndTimeIntended DATETIME,
  StartTimeActual DATETIME,
  EndTimeActual DATETIME,
  StartKM INT(6),
  EndKM INT(6),
  FOREIGN KEY (VIN) REFERENCES VEHICLE(VIN),
  FOREIGN KEY (DriverLicenseNum) REFERENCES DRIVER(DriverLicenseNum),
  FOREIGN KEY (OfficialID) REFERENCES OFFICIAL(OfficialID),
  FOREIGN KEY (PickUpLocID) REFERENCES LOCATION(LocationID),
  FOREIGN KEY (DropOffLocID) REFERENCES LOCATION(LocationID),
)
Engine=InnoDB;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 08:40:47

在两个表中,在表定义的最后一行都有一个额外的逗号:

代码语言:javascript
复制
FOREIGN KEY(VIN) REFERENCES VEHICLE(VIN),
                                        ^ here

FOREIGN KEY (DropOffLocID) REFERENCES LOCATION(LocationID),
                                                          ^ and here

把它拿开,你会很高兴的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32734702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档