php - MySQL 大 FK 标识符

标签 php mysql foreign-keys foreign-key-relationship restriction

我正在尝试创建一个 fk 但 MySQL 不允许...

Identifier name 'foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_PRODUCT_ENTITY' is too long [ CREATE TABLE `foobarbaz_weee_discount` (   `entity_id` int(10) unsigned NOT NULL DEFAULT '0',   `website_id` smallint(5) unsigned NOT NULL DEFAULT '0',   `customer_group_id` smallint(5) unsigned NOT NULL,   `value` decimal(12,4) NOT NULL DEFAULT '0.0000',   KEY `foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_WEBSITE` (`website_id`),   KEY `foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_PRODUCT_ENTITY` (`entity_id`),   KEY `foobarbaz_FK_CATALOG_PRODUCT_ENTITY_WEEE_DISCOUNT_GROUP` (`customer_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ]

有没有办法添加大fks? 谢谢。

最佳答案

不,它被硬编码到 MySQL 中,参见 the docs (朝向页面底部)。但这与FK的名称无关。是索引的名称太长(最多 64 个字符):

`Identifier`                  `Maximum Length (characters)`
Database                      64
Table                         64
Column                        64
Index                         64
Constraint                    64
Stored Procedure or Function  64
Trigger                       64
View                          64
Alias                         256 (see exception following table)
Compound Statement Label      16

关于php - MySQL 大 FK 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464714/

相关文章:

在复合主键中使用时未创建 MySQL 外键

php - jQuery 和 AJAX 加载

php - PHP 中来自 Appengine 的带有基本身份验证的 POST 请求

php - 使用 dompdf 打印 pdf 表格无法正常工作

php - 显示已读和未读通知

php - Yii - Cdbcriteria - 在具有关系的条件之间选择 where 运算符

php - INSERT INTO table2 SELECT FROM table1 然后 UPDATE table1 所选/插入的行

mysql - 创建触发器 AFTER UPDATE 来更新另一个表

sql - View 上的 TSQL 外键?

mysql - 限制数据库级别的关联记录数