无法创建 MYSQL 个数据库表
Can't Create MYSQL DataBase Tables
我正在尝试为我的数据库创建 MYSQL 个表,但我一直收到错误
这是我的代码
CREATE DATABASE Hospitals;
CREATE TABLE hospital (
hospitalId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
postcode VARCHAR(10),
phoneNumber VARCHAR(20),
emailAddress VARCHAR(255),
PRIMARY KEY (hospitalId),
) ENGINE = INNODB;
CREATE TABLE wards (
wardID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
specialisation VARCHAR(100),
PRIMARY KEY (wardID),
) ENGINE = INNODB;
CREATE TABLE staff (
staffId INT NOT NULL AUTO_INCREMENT,
foreName VARCHAR(50),
surName VARCHAR(50),
position VARCHAR(50),
salary DOUBLE,
PRIMARY KEY (staffId)) ENGINE = INNODB;
CREATE TABLE patients (
niNumber VARCHAR(50),
name VARCHAR(100),
dob DATE,
sex VARCHAR(10),
nokName VARCHAR(100),
nokPhone VARCHAR(50),
PRIMARY KEY niNumber) ENGINE = INNODB;
CREATE TABLE medications (
medicationId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
contraIndications VARCHAR(255),
PRIMARY KEY (medicationId)) ENGINE = INNODB;
INSERT INTO hospital (hospitalId, name, postcode, phoneNumber, emailAddress)
VALUES(1, 'Bangor', 'LL72GW', '01276541789', 'Bangor.Hospital@gmail.com'),
VALUES(2, 'london', 'SW1A 0AA', '01673531789', 'London.Hospital@gmail.com');
INSERT INTO wards (wardId, name, specialisation)
VALUES(1, 'Ward1', 'Brain Surgery'),
VALUES(2, 'Ward2', 'Heart Surgery');
INSERT INTO staff (staffId, foreName, surName, position, salary)
VALUES(1, 'Malcolm', 'Gross', 'Manager', '50000.0'),
VALUES(1, 'Lewis', 'Castle', 'Surgeon', '30000.0');
INSERT INTO patients (niNumber, name, dob, sex, nokName, nokPhone)
VALUES('001AFCY6', 'Sam', '20-02-2002', 'male', 'David', '09876543268'),
VALUES('0SSHD2J3', 'Jim', '19-09-1977', 'male', 'Terry', '06789347382');
INSERT INTO medications (medicationId, name, contraIndications)
VALUES(1, 'Heart Medicine', 'Dont Use if heart is ok'),
VALUES(2, 'Antibiotics', 'Dont use if patient is feeling well');
但我一直收到的错误是 Query 1 ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES(2, 'Antibiotics', 'Dont use if patient is feeling well')' at line 3
我不知道为什么会出现这样的错误
我做错了什么,请问我该如何解决
非常感谢
您不需要在 INSERT 语句中使用 2 个 VALUES 关键字。所以你更新的 INSERT 语句应该看起来很像 -
INSERT INTO hospital (hospitalId, name, postcode, phoneNumber, emailAddress)
VALUES(1, 'Bangor', 'LL72GW', '01276541789', 'Bangor.Hospital@gmail.com'),
(2, 'london', 'SW1A 0AA', '01673531789', 'London.Hospital@gmail.com');
而且您还必须去掉前 2 个表中的最后一个逗号 -
CREATE TABLE hospital (
hospitalId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
postcode VARCHAR(10),
phoneNumber VARCHAR(20),
emailAddress VARCHAR(255),
PRIMARY KEY (hospitalId) --, This should be removed.
) ENGINE = INNODB;
CREATE TABLE wards (
wardID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
specialisation VARCHAR(100),
PRIMARY KEY (wardID) --, This should be removed.
) ENGINE = INNODB;
我正在尝试为我的数据库创建 MYSQL 个表,但我一直收到错误
这是我的代码
CREATE DATABASE Hospitals;
CREATE TABLE hospital (
hospitalId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
postcode VARCHAR(10),
phoneNumber VARCHAR(20),
emailAddress VARCHAR(255),
PRIMARY KEY (hospitalId),
) ENGINE = INNODB;
CREATE TABLE wards (
wardID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
specialisation VARCHAR(100),
PRIMARY KEY (wardID),
) ENGINE = INNODB;
CREATE TABLE staff (
staffId INT NOT NULL AUTO_INCREMENT,
foreName VARCHAR(50),
surName VARCHAR(50),
position VARCHAR(50),
salary DOUBLE,
PRIMARY KEY (staffId)) ENGINE = INNODB;
CREATE TABLE patients (
niNumber VARCHAR(50),
name VARCHAR(100),
dob DATE,
sex VARCHAR(10),
nokName VARCHAR(100),
nokPhone VARCHAR(50),
PRIMARY KEY niNumber) ENGINE = INNODB;
CREATE TABLE medications (
medicationId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
contraIndications VARCHAR(255),
PRIMARY KEY (medicationId)) ENGINE = INNODB;
INSERT INTO hospital (hospitalId, name, postcode, phoneNumber, emailAddress)
VALUES(1, 'Bangor', 'LL72GW', '01276541789', 'Bangor.Hospital@gmail.com'),
VALUES(2, 'london', 'SW1A 0AA', '01673531789', 'London.Hospital@gmail.com');
INSERT INTO wards (wardId, name, specialisation)
VALUES(1, 'Ward1', 'Brain Surgery'),
VALUES(2, 'Ward2', 'Heart Surgery');
INSERT INTO staff (staffId, foreName, surName, position, salary)
VALUES(1, 'Malcolm', 'Gross', 'Manager', '50000.0'),
VALUES(1, 'Lewis', 'Castle', 'Surgeon', '30000.0');
INSERT INTO patients (niNumber, name, dob, sex, nokName, nokPhone)
VALUES('001AFCY6', 'Sam', '20-02-2002', 'male', 'David', '09876543268'),
VALUES('0SSHD2J3', 'Jim', '19-09-1977', 'male', 'Terry', '06789347382');
INSERT INTO medications (medicationId, name, contraIndications)
VALUES(1, 'Heart Medicine', 'Dont Use if heart is ok'),
VALUES(2, 'Antibiotics', 'Dont use if patient is feeling well');
但我一直收到的错误是 Query 1 ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES(2, 'Antibiotics', 'Dont use if patient is feeling well')' at line 3
我不知道为什么会出现这样的错误
我做错了什么,请问我该如何解决
非常感谢
您不需要在 INSERT 语句中使用 2 个 VALUES 关键字。所以你更新的 INSERT 语句应该看起来很像 -
INSERT INTO hospital (hospitalId, name, postcode, phoneNumber, emailAddress)
VALUES(1, 'Bangor', 'LL72GW', '01276541789', 'Bangor.Hospital@gmail.com'),
(2, 'london', 'SW1A 0AA', '01673531789', 'London.Hospital@gmail.com');
而且您还必须去掉前 2 个表中的最后一个逗号 -
CREATE TABLE hospital (
hospitalId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
postcode VARCHAR(10),
phoneNumber VARCHAR(20),
emailAddress VARCHAR(255),
PRIMARY KEY (hospitalId) --, This should be removed.
) ENGINE = INNODB;
CREATE TABLE wards (
wardID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
specialisation VARCHAR(100),
PRIMARY KEY (wardID) --, This should be removed.
) ENGINE = INNODB;