외부 키를 사용한 MariaDB 테이블 생성 오류
그런 질문들이 많은데 그 중에서 답을 찾을 수가 없어요.
여기 뭐가 문제인지 말씀해 주시겠어요?스크립트는 mysql Workbench에 의해 작성되었지만 답변만 제외되지 않습니다.
-- MySQL Script generated by MySQL Workbench
-- Mon Nov 26 14:14:46 2018
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`Owner`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`Owner` ;
CREATE TABLE IF NOT EXISTS `mydb`.`Owner` (
`OwnerId` CHAR(36) NOT NULL,
`Name` NVARCHAR(60) NOT NULL,
`DateOfBirth` DATE NOT NULL,
`Adress` NVARCHAR(100) NOT NULL,
PRIMARY KEY (`OwnerId`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Account`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`Account` ;
CREATE TABLE IF NOT EXISTS `mydb`.`Account` (
`AccountId` CHAR(36) NOT NULL,
`DateCreated` DATE NOT NULL,
`AccountType` VARCHAR(45) NOT NULL,
`OwnerId` CHAR(36) NULL,
PRIMARY KEY (`AccountId`),
INDEX `fk_Account_Owner_idx` (`OwnerId` ASC) VISIBLE,
CONSTRAINT `fk_Account_Owner`
FOREIGN KEY (`OwnerId`)
REFERENCES `mydb`.`Owner` (`OwnerId`)
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
에러는 다음과 같습니다.
에러 코드: 1064.SQL 구문에 오류가 있습니다. 매뉴얼을 참조하십시오.
이는 MariaDB 서버 버전에 해당하며, 'STRESSTRAIN' 근처에서 사용할 수 있는 올바른 구문입니다.fk_Account_Owner
외부 키(OwnerId
)
7행의 'myd' 참조
하지만 이 단어를 없애야 하는 또 다른 경우는VISIBLE
.
MySQL Workbench에서:
이동처:
[ Edit ]> [ Preferences ]> [ Modeling ]> [ MySQL ]를 선택합니다.
그런 다음 "기본 대상 MySQL 버전"을 5.7로 설정합니다.
https://stackoverflow.com/a/52785302/2625955 에서
언급URL : https://stackoverflow.com/questions/53480613/mariadb-table-creation-error-with-foreign-key
'source' 카테고리의 다른 글
Axios 대행 수신자가 원래 요청을 재시도하고 원래 약속에 액세스합니다. (0) | 2023.01.27 |
---|---|
Vue CLI 3에서 만든 프로젝트를 사용하여 typescript의 node_modules를 Import하려면 어떻게 해야 합니까? (0) | 2023.01.17 |
PHP에는 데이터 구조가 내장되어 있습니까? (0) | 2023.01.17 |
JavaScript의 "with" 스테이트먼트에 정당한 용도가 있습니까? (0) | 2023.01.17 |
MariaDB/MySql: CREATE에서 CURRENT_TIMESTamp 설정 및 UPDATE에서 메모 변경 (0) | 2023.01.17 |