Я пытаюсь выполнить такую команду SQL, чтобы создать таблицу для базы данных Maria:
CREATE TABLE `sh_bom`.`stockmovements` (
`MOVEMENTID` INT NOT NULL,
`MOVEMENTDATE` DATETIME NULL,
`MOVEMENTVALUE` INT NULL,
`LEFTBEFORE` INT NULL,
`LEFTAFTER` INT NULL,
`COMMENTARY` VARCHAR(200) NULL,
`PARTID_FK` INT NULL,
PRIMARY KEY (`MOVEMENTID`),
INDEX `PARTID_FKNAME_idx` (`PARTID_FK` ASC) VISIBLE,
CONSTRAINT `PARTID_FKNAME`
FOREIGN KEY (`PARTID_FK`)
REFERENCES `sh_bom`.`detail` (`Id`)
ON DELETE CASCADE
ON UPDATE CASCADE);
Но я получаю такую ошибку:
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 `PARTID_FKNAME`
FOREIGN KEY (`PARTID_FK`)
REFERENCES `sh_b' at line 10
SQL Statement:
CREATE TABLE `sh_bom`.`stockmovements` (
`MOVEMENTID` INT NOT NULL,
`MOVEMENTDATE` DATETIME NULL,
`MOVEMENTVALUE` INT NULL,
`LEFTBEFORE` INT NULL,
`LEFTAFTER` INT NULL,
`COMMENTARY` VARCHAR(200) NULL,
`PARTID_FK` INT NULL,
PRIMARY KEY (`MOVEMENTID`),
INDEX `PARTID_FKNAME_idx` (`PARTID_FK` ASC) VISIBLE,
CONSTRAINT `PARTID_FKNAME`
FOREIGN KEY (`PARTID_FK`)
REFERENCES `sh_bom`.`detail` (`Id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
Я проверил документацию здесь: https://mariadb.com/kb/en/foreign-keys/ И я уверен, что внешний ключ определен правильно:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
Чего мне не хватает в этой команде SQL?