云数据库 MySQL
  • 产品发布记录
  • 新手引导
  • 产品简介

  • 购买指南

  • 操作指南

  • 最佳实践

    • 云数据库MySQL使用规范
    • 配置自动重连
    • MyISAM转换InnoDB引擎限制
      • 背景
      • InnoDB 引擎复合主键包含自增列的修改方案
    • 在线修改大表结构
    • 使用物理备份恢复至自建数据库
    • 使用逻辑备份恢复至自建数据库
  • 性能白皮书
  • 故障处理

  • API文档

  • 常见问题

  • 服务条款
  • 词汇表
  • 联系我们
  • MySQL
  • 最佳实践
云数据库 MySQL

云数据库 RDS MySQL 是首云基于高性能 SSD 存储、高性能云主机和开源数据库 MySQL 打造的一款稳定可靠、可弹性伸缩的关系型数据库。提供了容灾、备份恢复、账户权限、监控告警等一系列等功能。方便您轻松自由地管理数据库。

  • 产品简介
    • 产品概述

    • 产品优势

    • 应用场景

    • 数据库架构

    • 功能差异列表

    • 产品实例

    • 区域与虚拟数据中心

  • 购买指南
    • 计费概述

    • 购买方式

    • 欠费说明

    • 退费说明

    • 调整实例费用说明

    • 备份空间收费说明

  • 操作指南
    • 使用限制

    • 操作总览

    • 管理实例

    • 只读实例

    • 账号管理

    • 数据库管理

    • 参数配置

    • 备份恢复

    • 监控报警

    • 标签管理

    • 慢日志下载

  • 最佳实践
    • 云数据库MySQL使用规范

    • 配置自动重连

    • MyISAM转换InnoDB引擎限制

    • 在线修改大表结构

    • 使用物理备份恢复至自建数据库

    • 使用逻辑备份恢复至自建数据库

  • 故障处理
    • 连接相关

    • 性能相关

    • MySQL修改密码策略

  • API文档
    • 认证方式

    • API概览

    • 实例相关接口

    • 账号相关接口

    • 备份相关接口

    • 只读实例相关接口

    • 监控相关接口

    • 参数相关接口

    • 错误码

  • 常见问题
    • 计费相关

    • 数据库备份相关

    • 数据库恢复相关

    • 连接登录

    • 参数修改

    • 账号权限

    • 性能内存

    • 功能特性

    • 控制台相关

MyISAM转换InnoDB引擎限制

最后更新时间:2021-12-03 生成PDF文件 | 前往GitHub编辑

本文为您介绍 MyISAM 引擎自动转换为 InnoDB 引擎后,创建表时报错的解决方案。

# 背景

首云云数据库 MySQL 默认支持 MyISAM 存储引擎,并在 MySQL 8.0 版本中,不再支持 MyISAM 引擎。

当数据库迁移到云数据库 MySQL 8.0 版本时,需要把 MyISAM 引擎转换为 InnoDB 引擎。

相对于 MyISAM 引擎,InnoDB 引擎不支持复合主键包含自增列,当 MyISAM 引擎转换为 InnoDB 引擎后,创建表时会报错,报错信息如下:

ERROR 1075 (42000):Incorrect table definition;there can be only one auto column and it must be defined as a key
1

建议您通过为自增列创建索引的方式,实现 InnoDB 引擎的复合主键包含自增列语法。

# InnoDB 引擎复合主键包含自增列的修改方案

  1. # 原创建表报错的 SQL 语句:

    create table table_name
    (
    id int(8) AUTO_INCREMENT,
    name varchar(19),
    value varchar(10),
    primary key (name,id)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    1
    2
    3
    4
    5
    6
    7

    报错如下:

    ERROR 1075 (42000):Incorrect table definition;there can be only one auto column and it must be defined as a key
    
    1
  2. # 修改创建索引后的 SQL 语句:

    alter table table_name engine=innodb; 
    
    1
配置自动重连
在线修改大表结构

← 配置自动重连 在线修改大表结构→

最近更新
01
产品发布记录
10-18
02
查询云数据库MySQL实例列表
10-18
03
计费概述
07-26
更多文章>

版权所有 ©2005 - 2024 Capitalonline Data Service Co., Ltd 备案序号:京ICP备06033943号 京公网安备:11010502020343号

北京首都在线科技股份有限公司(总部) 经营许可证:B1.B2-20140358 上海红之盟网络科技有限公司(首都在线全资子公司) 经营许可证:B1-20194861