You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL Workbench生成脚本导入phpMyAdmin报#1064错误如何解决

报错根本原因

你使用的MySQL 5.6.28版本不支持GENERATED ALWAYS AS ... STORED语法,该生成列功能是MySQL 5.7版本才正式上线的特性,低版本运行该语句必然触发1064语法错误。

适配解决方案(二选一即可)

  • 方案1:升级服务器MySQL版本到5.7及以上,无需修改现有SQL脚本即可正常导入,是成本最低的解决方式。
  • 方案2:如果暂时无法升级MySQL版本,调整建表逻辑替换生成列实现:
    1. 将attack和defense修改为普通INT字段
    2. 新增触发器,在knight表执行INSERT、UPDATE操作时自动计算这两个字段的值,实现和原生生成列完全一致的效果。

适配MySQL 5.6版本的修正SQL脚本

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 NOT NULL,
    `defense` INT NOT NULL,
    `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;

配套触发器脚本:

-- 插入数据时自动计算attack、defense字段值
DELIMITER //
CREATE TRIGGER `tr_knight_before_insert` BEFORE INSERT ON `knight`
FOR EACH ROW
BEGIN
    SET NEW.attack = NEW.agility * NEW.strength;
    SET NEW.defense = NEW.vitality * NEW.strength;
END //
DELIMITER ;

-- 更新数据时自动重算attack、defense字段值
DELIMITER //
CREATE TRIGGER `tr_knight_before_update` BEFORE UPDATE ON `knight`
FOR EACH ROW
BEGIN
    SET NEW.attack = NEW.agility * NEW.strength;
    SET NEW.defense = NEW.vitality * NEW.strength;
END //
DELIMITER ;

MySQL Workbench版本同步设置

要让Workbench直接生成适配5.6版本的脚本,按以下步骤调整设置即可:

  1. 打开对应数据库模型文件,点击顶部菜单栏Edit -> Preferences
  2. 在弹出窗口左侧导航栏找到Modeling -> MySQL分类
  3. 将Default Target MySQL Version参数修改为5.6.28,保存设置后重新导出SQL脚本,Workbench会自动屏蔽5.6版本不支持的语法特性。

内容的提问来源于stack exchange,提问作者DevelBase2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:54:04