我已经运行mysql的这个查询:外键引用的主键可以是mysql中的varchar(255)吗?
ALTER TABLE `connections`
ADD CONSTRAINT `connections_serial_fk`
FOREIGN KEY (`serial`)
REFERENCES `devices`(serial)
ON DELETE CASCADE;
而且我得到错误号150我已经找了文档和事情,我认为可能会导致此错误是,列“系列'是一个varchar(255)。
This reference表示“innodb允许外键引用任何索引列或列组”。
MySql有这个限制吗?
从我的架构:
设备:
| Field | Type | Null | Key | Default | Extra |
| serial | varchar(255) | YES | | NULL | |
连接:
| Field | Type | Null | Key | Default | Extra |
| serial | varchar(255) | YES | | NULL | |
编辑您的问题并粘贴您的表格定义。是否有任何类型的设备的唯一约束?串行? –
在那里,我的编辑。这两列的列完全相同,其他字段很常见。没有任何其他限制。 –
'devices.serial'似乎不是主要(或唯一)密钥。 –