【问题标题】:MySQL is not creating the table from an imported SQL file correctlyMySQL 未正确从导入的 SQL 文件创建表
【发布时间】:2021-06-18 16:43:13
【问题描述】:

我将 Microsoft SQL 创建表语法转换为 MySQL 并让 MySQL 导入 SQL 文件,我不断收到错误消息。这是代码:

CREATE TABLE Adminstration (
    AdminID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ContactID int constraint fk_Admin_Contact foreign key (ContactID) references ContactInfo(ContactID),
    EEID int constraint fk_Admin_Employee foreign key (EEID) references Employees(EEID),
    LName VARCHAR(30) NOT NULL,
    FName VARCHAR(30) NOT NULL,
    EContactID int constraint fk_Admin_EContact foreign key (EContactID) references EmergencyContacts(ECID),
    Position VARCHAR(50),
    DOB DATE
);

但是,我不断收到一条错误消息:

contraitnt" 对于此服务器版本在此位置无效,需要 AS、AUTO_INCREMENT、CHECK

这有什么问题?

【问题讨论】:

  • 你为 MySQL 问题标记了哪些 SQL Server?
  • 也许你有一个拼写错误contraitnt
  • 我推荐阅读产品文档...
  • 列约束(例如您尝试为 ContactID 定义的约束)和表约束在语法上有所不同。您使用了后一种语法 - 作为列约束无效。根据定义,列约束只会与您正在定义的列相关联。

标签: mysql sql sql-server syntax mysql-workbench


【解决方案1】:

你犯了一个小错误,约束在列定义中无效。

CREATE TABLE Adminstration (
    AdminID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ContactID int,
    constraint fk_Admin_Contact foreign key (ContactID) references ContactInfo(ContactID),
    EEID int,
    constraint fk_Admin_Employee foreign key (EEID) references Employees(EEID),
    LName VARCHAR(30) NOT NULL,
    FName VARCHAR(30) NOT NULL,
    EContactID int
    ,constraint fk_Admin_EContact foreign key (EContactID) references EmergencyContacts(ECID),
    Position VARCHAR(50),
    DOB DATE
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多