外键未创建MariaDB

时间:2017-11-25 02:48:21

标签: sql mariadb

我有一个奇怪的情况......我有一个SQL查询 在我的生产服务器上工作,但在开发服务器上。有问题的查询:

CREATE TABLE IF NOT EXISTS `sizes` (
  `size` varchar(255) NOT NULL,
  `id` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `sizes` (`size`, `id`) VALUES
('Small', 3),
('Medium', 3),
('Large', 3),
('Medium', 5),
('Large', 5),
('Large', 6),
('Extra Large', 6),
('Extra Large', 4);
ALTER TABLE `sizes`
  ADD KEY `id` (`id`);
ALTER TABLE `sizes`
ADD CONSTRAINT `sizes_fk_1` FOREIGN KEY (`id`) REFERENCES `products` (`id`);

正如您所看到的,我只是想创建一个包含我所拥有产品大小的简单表格。我有两列...实际大小以及引用我的id表的外键products,并且可以想象,引用大小所属的产品的ID。问题出在我的生产服务器上,查询完美执行并建立了关系。但是在我的开发服务器上,当我触发命令时,我收到此错误消息:

Can't create table `thecovh1_lucy`.`#sql-1eed4_17bf` (errno: 150 "Foreign key constraint is incorrectly formed")

这里有两件事令我困惑:
1.为什么说我试图创建一个名为#sql-1eed4_17bf的表格 更重要的是 2.我建立外键的方式有什么问题?
作为参考,我也尝试了这种创建表的方法(没有将数据插入表中,这只是试图创建表):

CREATE TABLE IF NOT EXISTS sizes (
size VARCHAR(255) NOT NULL ,
id INT(10) NOT NULL ,
FOREIGN KEY (id) REFERENCES products(id));

这是我创建uiid表的方式(再次,成功),但这也给了我完全相同的错误消息。

0 个答案:

没有答案