2015-06-04 4 views
1

Я делаю простую базу данных MySQL, но я все время получаю сообщение об ошибке: не могу добавить ограничение внешнего ключа какую-либо помощь!
Также возникает вопрос о том, существует ли разница между использованием символа `и 'при создании вашей базы данных?MySQL Невозможно добавить ограничение внешнего ключа Код ошибки: 1215

/*!40101 SET NAMES utf8 */; 

/*!40101 SET SQL_MODE=''*/; 

/*!40014 SET @OLD_UNIQUE_[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 
CREATE DATABASE /*!32312 IF NOT EXISTS*/`a3823833_MiniPost` /*!40100 DEFAULT CHARACTER SET latin1 */; 

USE `a3823833_MiniPost`; 

/*Table structure for table `user` */ 

DROP TABLE IF EXISTS `user`; 

CREATE TABLE `user` (
    `userid` bigint(10) NOT NULL, 
    `username` varchar(20) NOT NULL, 
    `password` varchar(20) NOT NULL, 
    `email` varchar(50) NOT NULL, 
    PRIMARY KEY (`userid`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

/*Table structure for table `profile` */ 

DROP TABLE IF EXISTS `profile`; 

CREATE TABLE `profile` (
    `userid` int(11), 
    `lastName` varchar(50), 
    `firstName` varchar(50), 
    `dob` varchar(10), 
    PRIMARY KEY (`userid`), 
    CONSTRAINT `profile_fk` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

ответ

2

bigint (10) и int (11) не совпадают. сделайте их одинаковыми, а pk на родительской таблице (как и есть)

+0

Вау я так глуп. Спасибо большое! такая глупая ошибка – Marcipanas