【发布时间】:2021-11-09 12:38:54
【问题描述】:
你能帮帮我吗?我购买了一个域只是为了学习数据库等,并在 MySQL Workbench 中创建了我的数据库模型。我生成了一个脚本并尝试使用 phpMyAdmin 将其导入我的数据库。这是脚本:
CREATE TABLE IF NOT EXISTS `knight` (
`idKnight` INT NOT NULL AUTO_INCREMENT,
`strength` INT NOT NULL DEFAULT 1,
`agility` INT NOT NULL DEFAULT 1,
`vitality` INT NOT NULL DEFAULT 1,
`attack` INT GENERATED ALWAYS AS (agility*strength) STORED,
`defense` INT GENERATED ALWAYS AS (vitality*strength) STORED,
`idUser` INT NOT NULL,
`idTavern` INT NULL,
PRIMARY KEY (`idKnight`),
INDEX `fk_user_idx` (`idUser` ASC),
INDEX `fk_tavern_idx` (`idTavern` ASC),
CONSTRAINT `fk_user` FOREIGN KEY (`idUser`)
REFERENCES `user` (`idUser`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_tavern` FOREIGN KEY (`idTavern`)
REFERENCES `tavern` (`idTavern`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
这是错误:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 'GENERATED ALWAYS AS (agility*strength) STORED 附近使用,
defenseINT 始终在第 6 行生成
现在的问题是如何同步生成脚本的数据库的 MySQL Workbench 版本和数据库本身。数据库是 Inno DB。
感谢您的帮助
编辑:我的服务器的 MySQL 版本是:5.6.28
【问题讨论】:
-
请edit您的问题告诉我们您的MySQL服务器的版本。 5.7 之前不支持虚拟 (
GENERATED ALWAYS) 列。 percona.com/blog/2016/03/04/…
标签: mysql database mysql-error-1064