【问题标题】:Mysql workbench Error while applying SQL script to the database将 SQL 脚本应用于数据库时出现 Mysql 工作台错误
【发布时间】:2016-10-13 21:49:34
【问题描述】:

操作失败:将 SQL 脚本应用到数据库时出错。

ERROR 1064:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在')附近使用 参考ad_d19fb99c240e6c8.user () 删除无操作 ON U' 在第 10 行

SQL 语句:

CREATE TABLE `ad_d19fb99c240e6c8`.`instructor_profile` (
  `InstructorId` INT NULL,
  `InstructorName` VARCHAR(45) NULL,
  `companyId` INT NULL,
  `companyName` VARCHAR(45) NULL,
  `instructorEmail` VARCHAR(45) NULL,
  `ManagerName` VARCHAR(45) NULL,
  `ManagerEmail` VARCHAR(45) NULL,
  CONSTRAINT `UserId`
    FOREIGN KEY ()
    REFERENCES `ad_d19fb99c240e6c8`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `VendorId`
    FOREIGN KEY ()
    REFERENCES `ad_d19fb99c240e6c8`.`vendor` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

【问题讨论】:

  • 致在 Google 上找到此内容的任何人:确保您的表引擎匹配,在我的情况下是此错误的一个问题;在此处查看(也许还可以投票)mysql Foreign key constraint is incorrectly formed error
  • @aexl 谢谢,这是我的问题,表引擎不一样。

标签: mysql mysql-workbench


【解决方案1】:

正如其他人所说,您必须将列名放在括号内。这必须与您之前在 CREATE TABLE 语句中给出的列名之一匹配。

【讨论】:

    【解决方案2】:

    您缺少要引用的列和 FK 的列:

     CONSTRAINT `UserId`
          FOREIGN KEY (<TheColumn>)
          REFERENCES `ad_d19fb99c240e6c8`.`user` (<TheColumnInTheOtherTable>)
          ON DELETE NO ACTION
          ON UPDATE NO ACTION,
     CONSTRAINT `VendorId`
          FOREIGN KEY (<TheSecondColumn>)
          REFERENCES `ad_d19fb99c240e6c8`.`vendor` (<TheSecondColumnInTheOtherTable>)
          ON DELETE NO ACTION
          ON UPDATE NO ACTION)
    

    【讨论】:

      【解决方案3】:

      你需要在括号中写外键的名字,你的当前是空的。

      【讨论】:

        【解决方案4】:

        您还没有设置要设置外键的列!

         CONSTRAINT `UserId`
            FOREIGN KEY ( `#KEYCOLUMN#` )
            REFERENCES `ad_d19fb99c240e6c8`.`user` ( `#KEYCOLUMN#` )
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `VendorId`
            FOREIGN KEY ( `#KEYCOLUMN#` )
            REFERENCES `ad_d19fb99c240e6c8`.`vendor` ( `#KEYCOLUMN#` )
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        

        【讨论】:

        • 即使添加了外键,我也得到了错误
        【解决方案5】:

        操作失败:将 SQL 脚本应用到数据库时出错。

        ERROR 1064:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在''UserId'附近使用) 参考ad_d19fb99c240e6c8.user () ON DELETE NO ACTION ' 在第 10 行 SQL 语句:CREATE TABLE ad_d19fb99c240e6c8.instructor_profile (InstructorId INT NOT NULL,InstructorName VARCHAR(45) NULL,companyId INT NULL,
        companyName VARCHAR(45) NULL,ManagerName VARCHAR(45) NULL,
        ManagerEmail VARCHAR(45) NULL, InstructorEmail VARCHAR(45) 空值, 约束UserId 外键(“用户 ID”) 参考ad_d19fb99c240e6c8.user () 删除无操作 更新无操作,约束VendorId 外键('VendorId') 参考ad_d19fb99c240e6c8.vendor () 删除无操作 更新无操作)

        错误仍然存​​在

        【讨论】:

        • 此区域用于回答您的问题。请编辑您的问题,而不是在此处发布。
        猜你喜欢
        • 1970-01-01
        • 2021-03-15
        • 2017-10-19
        • 2014-04-18
        • 1970-01-01
        • 1970-01-01
        • 2017-12-06
        • 2015-05-27
        • 1970-01-01
        相关资源
        最近更新 更多