JavaEar 专注于收集分享传播有价值的技术资料

Mysql workbench Error while applying SQL script to the database

Operation failed: There was an error while applying the SQL script to the database.

ERROR 1064: 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 ') REFERENCES ad_d19fb99c240e6c8.user () ON DELETE NO ACTION ON U' at line 10

SQL Statement:

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)

5个回答

    最佳答案
  1. You're missing the column you want to reference and the column of the 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)
    
  2. 参考答案2
  3. You need to write name of the foreign key in parenthesis, yours are currently empty.

  4. 参考答案3
  5. You haven´t set the columns on which you want to set the foreign keys!

     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)
    
  6. 参考答案4
  7. The operation failed: There was an error while applying the SQL script to the database.

    ERROR 1064: 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 ''UserId') REFERENCES ad_d19fb99c240e6c8.user () ON DELETE NO ACTION ' at line 10 SQL Statement: 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) NULL, CONSTRAINT UserId FOREIGN KEY ('UserId') REFERENCES ad_d19fb99c240e6c8.user () ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT VendorId FOREIGN KEY ('VendorId') REFERENCES ad_d19fb99c240e6c8.vendor () ON DELETE NO ACTION ON UPDATE NO ACTION)

    still the error exists

  8. 参考答案5
  9. You must put a column name inside the parentheses, as others have said. This must match one of the column names previously given in your CREATE TABLE statement.