programing

테이블에 외래 키를 추가하는 데 문제가 발생했습니다.

abcjava 2023. 8. 24. 21:45
반응형

테이블에 외래 키를 추가하는 데 문제가 발생했습니다.

라는 테이블이 있습니다.model_agricultural_machine이 명령으로, 마리아를 이용합니다.DB

CREATE TABLE `autoparanaiba`.`model_agricultural_machine` (
  `id` INT NOT NULL,
  `description` VARCHAR(90) NOT NULL,
  `brand_agricultural_machine_id` TINYINT(5) UNSIGNED ZEROFILL NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_modelXbrand_idx` (`brand_agricultural_machine_id` ASC) VISIBLE,
  CONSTRAINT `fk_modelXbrand`
    FOREIGN KEY (`brand_agricultural_machine_id`)
    REFERENCES `autoparanaiba`.`brand_agricultural_machine` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

이 명령을 실행하면 이 오류가 나타납니다.

Operation failed: There was an error while applying the SQL script to the database.
Executing:
CREATE TABLE `autoparanaiba`.`model_agricultural_machine` (
  `id` INT NOT NULL,
  `description` VARCHAR(90) NOT NULL,
  `brand_agricultural_machine_id` TINYINT(5) UNSIGNED ZEROFILL NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_modelXbrand_idx` (`brand_agricultural_machine_id` ASC) VISIBLE,
  CONSTRAINT `fk_modelXbrand`
    FOREIGN KEY (`brand_agricultural_machine_id`)
    REFERENCES `autoparanaiba`.`brand_agricultural_machine` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
  CONSTRAINT `fk_modelXbrand`
    FOREIGN KEY (`brand_agricultural_machine_id`)' at line 6
SQL Statement:
CREATE TABLE `autoparanaiba`.`model_agricultural_machine` (
  `id` INT NOT NULL,
  `description` VARCHAR(90) NOT NULL,
  `brand_agricultural_machine_id` TINYINT(5) UNSIGNED ZEROFILL NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_modelXbrand_idx` (`brand_agricultural_machine_id` ASC) VISIBLE,
  CONSTRAINT `fk_modelXbrand`
    FOREIGN KEY (`brand_agricultural_machine_id`)
    REFERENCES `autoparanaiba`.`brand_agricultural_machine` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

MySQL Workbench에서 외부 키를 추가할 때 MySQL Error 1064 링크를 보았습니다. 그래서 Workbench에서 보았습니다.8.0.17MySQL 버전을 보기 위해 이 명령을 실행했습니다.

mysql --version
mysql  Ver 8.0.20-0ubuntu0.19.10.1 for Linux on x86_64 ((Ubuntu))

그리고 MySQL Workbench에서 변경했지만 아무것도 하지 않았고 동일한 오류가 나타납니다.

다음과 같은 인덱스에서 제거하여 해결했습니다.ASC VISIBLE.

언급URL : https://stackoverflow.com/questions/61759286/trouble-to-add-a-foreign-key-at-table

반응형