mysql - MySQL Workbench 中的外键

标签 mysql foreign-keys

我在 MySQL Workbench 中用 EER 图制作了八张表。现在我使用程序建议的 SQL 来创建表。它适用于大多数,但不适用于包含外键的那些。有谁知道如何解决这个问题?这是建议的代码和错误消息。

SQL语句:

CREATE TABLE IF NOT EXISTS `webprogrammering`.`Deltagelse` (
  `deltagelseNr` INT NOT NULL AUTO_INCREMENT ,
  `deltagerNr` INT NOT NULL ,
  `Arrid` INT NOT NULL ,
  PRIMARY KEY (`deltagelseNr`) ,
  INDEX `deltagerNr` () ,
  INDEX `Arrid` () ,
  CONSTRAINT `deltagerNr`
    FOREIGN KEY ()
    REFERENCES `webprogrammering`.`deltagere` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `Arrid`
    FOREIGN KEY ()
    REFERENCES `webprogrammering`.`arrangement` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB

错误消息日志:

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 ') , INDEX Arrid () , CONSTRAINT deltagerNr FOREIGN KEY () REFERE' at line 6

最佳答案

    CREATE TABLE IF NOT EXISTS `webprogrammering`.`Deltagelse` (
  `deltagelseNr` INT NOT NULL AUTO_INCREMENT ,
  `deltagerNr` INT NOT NULL ,
  `Arrid` INT NOT NULL ,
  PRIMARY KEY (`deltagelseNr`) ,
  INDEX `deltagerNrIdx` (deltagerNr) ,
  INDEX `ArridIdx` (Arrid) ,
  CONSTRAINT `deltagerNr_fk`
    FOREIGN KEY (deltagerNr)
    REFERENCES `webprogrammering`.`deltagere` (referenceField)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `Arrid_fk`
    FOREIGN KEY (Arrid)
    REFERENCES `webprogrammering`.`arrangement` (referenceField2)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB

将字段名称 referenceField、referenceField2 更改为正确的名称。

关于mysql - MySQL Workbench 中的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463206/

相关文章:

django - 无法将表单内容保存到数据库

c# - 是否可以在 Entity Framework 中捕获0..1到0..1的关系?

mysql - 外部查询值不能用于内部查询

mysql - 是否可以将一列引用为多个外键?

php - Docker 容器已链接但无法连接 mysql

MySQL 查询自连接最大日期

mysql - 无法添加外键约束 MySQL Workbench

entity-framework - 在 Entity Framework v1 中添加和更新外键

php - 比较 db 值并获取值 + 重复项

MYSQL 查询将日期列设置为空(当前日期除外)