约束sql错误:#1005 - 无法创建表

时间:2014-02-19 16:07:38

标签: mysql sql database constraints

错误 我在一台服务器上有一个工作站点。我决定把它搬到另一家公司。我用phpmyadmin导出数据库并上传到新服务器。每次我尝试导入数据库时​​都会收到此错误:

SQL查询:

--
-- Constraints for table `seller_cart`
--
ALTER TABLE `seller_cart`
  ADD CONSTRAINT `seller_cart_ibfk_1`
    FOREIGN KEY ( `subscription` )
      REFERENCES `subscription` ( `id` ) ,
  ADD CONSTRAINT `seller_cart_ibfk_2`
    FOREIGN KEY ( `user` ) 
      REFERENCES `users` ( `user_id` )
    ON DELETE CASCADE
    ON UPDATE CASCADE ,
  ADD CONSTRAINT `seller_cart_ibfk_3`
    FOREIGN KEY ( `featured_item` )
      REFERENCES `featured_item` ( `item` )
    ON DELETE CASCADE
    ON UPDATE CASCADE ;

MySQL说:文档

#1005 - Can't create table 'project123.#sql-12050_1d' (errno: 150) (Details...)

这里是卖家购物车的结构:

--
-- Table structure for table `seller_cart`
--

CREATE TABLE IF NOT EXISTS `seller_cart` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user` bigint(20) NOT NULL,
  `subscription` bigint(20) DEFAULT NULL,
  `description` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  `item_listings` text COLLATE utf8_unicode_ci,
  `featured_item` bigint(20) DEFAULT NULL,
  `quantity` int(2) NOT NULL,
  `price` float NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user` (`user`),
  KEY `subscription` (`subscription`),
  KEY `featured_item` (`featured_item`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

可能是什么问题?我刚导出并导入了相同的数据库。甚至尝试过本地主机和同样的问题。

1 个答案:

答案 0 :(得分:0)

当您尝试引用未编制索引的列时,将引发此错误。

检查是否

  1. 订阅(id)
  2. users(user_id)
  3. featured_item(item)
  4. 定义了有效的索引。如果没有,请定义它们并运行ALTER ...语句。

    参考 :外键约束规则: