翻译 InnoDB permits a foreign key to reference any index column or group of columns. However, in the referenced table, there must be an index where the referenced columns are the first columns in the same order. Hidden columns that InnoDB adds to an index are also considered (see Section 14.6.2.1, “Clustered and Secondary Indexes”).

时间: 2023-03-13 18:51:10 浏览: 60
答:InnoDB允许外键引用任何索引列或列组。但是,在被引用的表中,必须有一个索引,其中被引用的列必须以相同的顺序作为第一列。 InnoDB添加到索引的隐藏列也是如此(参见14.6.2.1节“聚簇索引和二级索引”)。
相关问题

Incorrect table definition; there can be only one auto column and it must be defined as a key

这个错误提示意味着在建表语句中有错误,表中只能包含一个自增列,且该列必须为主键。有两种常规解决方法:一是取消自增约束,使用程序控制序号递增;二是将自增列设为主键。如果不想将自增列设为主键,还可以使用第三种解决方法:给非主键的自增列增加唯一性索引。具体的SQL语句如下: ```sql -- 取消自增约束,使用程序控制序号递增 CREATE TABLE `example_table` ( `id` int NOT NULL COMMENT '本条记录的序号', `real_id` int NOT NULL DEFAULT 0 COMMENT '真正的主键', PRIMARY KEY (`real_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- 将自增列设为主键 CREATE TABLE `example_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '本条记录的序号', `real_id` int NOT NULL COMMENT '真正的主键', PRIMARY KEY (`real_id`, `id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- 给非主键的自增列增加唯一性索引 CREATE TABLE `example_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '本条记录的序号', `real_id` int NOT NULL DEFAULT 0 COMMENT '真正的主键', PRIMARY KEY (`real_id`), UNIQUE KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ```

ENGINE=InnoDB3780 Referencing column 'm id' and referenced column 'm id' in foreign key constraint 'm id' are incompatible.

这个错误通常发生在 MySQL 数据库中,它表示在创建外键时,引用列和参考列的数据类型或属性不兼容。在您的情况中,您正在创建一个名为 `m id` 的外键,但是参考表中的列 `m id` 和当前表中的列 `m id` 的数据类型或属性不匹配。这可能是由于以下原因之一引起的: 1. 数据类型不匹配:参考表中的列和当前表中的列的数据类型不一致,例如一个是 `INT`,另一个是 `BIGINT`。 2. 字段属性不匹配:参考表中的列和当前表中的列的属性不一致,例如一个是 `UNSIGNED`,另一个是 `SIGNED`。 为了解决这个问题,您需要检查参考表和当前表中的列的数据类型和属性,并确保它们匹配。如果列的类型不同,您可以尝试将它们都更改为相同的类型。如果列的属性不同,您可以尝试将它们都更改为相同的属性。

相关推荐

最新推荐

recommend-type

MySQL数据库innodb启动失败无法重启的解决方法

电脑在使用过程中死机,重启后发现mysql没有启动成功,查看错误日志发现是innodb出现问题导致mysql启动失败。 错误日志 $ mysql.server start Starting MySQL . ERROR! The server quit without updating PID file...
recommend-type

MySQL启动报错问题InnoDB:Unable to lock/ibdata1 error

主要介绍了MySQL启动报错问题InnoDB:Unable to lock/ibdata1 error,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法

最近在执行一个innoDB类型sql文件的时候,发现系统报错了,通过查找相关的资料终于解决了,所以下面这篇文章主要给大家介绍了关于mysql执行sql文件时报错Error: Unknown storage engine 'InnoDB'的解决方法,需要的...
recommend-type

mysql tmp_table_size优化之设置多大合适

主要介绍了mysql tmp_table_size优化问题,很多朋友都会问tmp_table_size设置多大合适,其实既然你都搜索到这篇文章了,一般大于64M比较好,当然你也可以可以根据自己的机器内容配置增加,一般64位的系统能充分利用...
recommend-type

Mysql InnoDB删除数据后释放磁盘空间的方法

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。 如果在创建数据库的时候设置innodb_file_per_table=1,这样InnoDB会对每个表创建一个数据文件,...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。