Mysql添加外键约束失败

时间:2016-02-13 20:51:03

标签: mysql database

我尝试在表格devair的字段user_id上向我的架构bluePrints添加外键约束到表{{1}的PK id但是我收到一个错误:

  

错误1215:无法添加外键约束

以下是我的表格定义:

用户

users

蓝图

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
  `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

令人讨厌的CREATE TABLE `bluePrints` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `bluePrintName` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `user_id` int(10) NOT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `uid` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 陈述:

alter table

2 个答案:

答案 0 :(得分:0)

简单的答案是你需要这样做:

ALTER TABLE table1 ADD CONSTRAINT fk_bp_id FOREIGN KEY (columnFromTable1) REFERENCES table2(columnReferencedFromTable2);

答案 1 :(得分:0)

问题是bluePrints表中的'unsigned'。一旦它没有签名,那么它就可以了。

现在我必须弄清楚如何让laravel使用unsigned。