mysql - 当我尝试创建表时出现错误,但我不明白为什么

标签 mysql sql

我尝试创建 3 个简单的表,但第 8 行出现错误,我不明白为什么。

CREATE TABLE Customers(
    CustomerID INT AUTO_INCREMENT PRIMARY KEY,
    CustomerName VARCHAR(200),
    Email VARCHAR(200),
    Age INT
)

CREATE TABLE Products(
    ProductID INT AUTO_INCREMENT PRIMARY KEY,
    Title VARCHAR(200),
    Price INT
)

CREATE TABLE Orders(
    OrderID INT AUTO_INCREMENT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY(CustomerID) REFERENCES Customers(CustomerID),
    ProductID INT,
    FOREIGN KEY(ProductID) REFERENCES Products(ProductID),
    Quantity INT,
    OrderDate DATETIME
)

我收到错误:

ERROR 1064 (42000): 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 'CREATE TABLE Products(
    ProductID INT AUTO_INCREMENT PRIMARY KEY,
    Title V' at line 8

有什么问题吗?这是一个简单的表创建。

最佳答案

你的代码没问题。您必须在每个 SQL 语句末尾添加分号 (;)。

CREATE TABLE Customers(
    CustomerID INT AUTO_INCREMENT PRIMARY KEY,
    CustomerName VARCHAR(200),
    Email VARCHAR(200),
    Age INT
);

CREATE TABLE Products(
    ProductID INT AUTO_INCREMENT PRIMARY KEY,
    Title VARCHAR(200),
    Price INT
);

CREATE TABLE Orders(
    OrderID INT AUTO_INCREMENT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY(CustomerID) REFERENCES Customers(CustomerID),
    ProductID INT,
    FOREIGN KEY(ProductID) REFERENCES Products(ProductID),
    Quantity INT,
    OrderDate DATETIME
);

在线演示:http://sqlfiddle.com/#!9/cbf746e/2/0

更新
Strawberry comment中提到,不要使用年龄作为列。请改用出生日期。使用出生日期,您可以计算年龄。

DateOfBirth DATE

关于mysql - 当我尝试创建表时出现错误,但我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55088025/

相关文章:

mysql - bash 脚本中的循环未捕获文件中的所有行

SQL Server 自动去除尾随空格

java - 具有 ON DUPLICATE KEY UPDATE 的插入查询的 Statement 类中的executeUpdate(String sql) 方法

mysql - Shell 脚本 - 下载文件 - Mysql 替换

php - 我可以从一个基于多个其他表的表中获取数据吗?

mysql - vb.net 获取两个日期之间的数据库数据

sql - 自定义 ORDER BY 函数 SQL

SQL查询以选择具有最小值的不同行

mysql - 为什么与 MariaDB 10.2 RAND() 函数发生如此多的冲突?

php - 将现有值显示为下拉列表、单选按钮和复选框字段中的预选值