Ограничение внешнего ключа-неправильно сформированные основы sql

#sql #foreign-keys

Вопрос:

 CREATE TABLE Employee 
(
    ESSN INT NOT NULL ,
    FirstName CHAR NOT NULL ,
    MiddleName CHAR,
    LastName CHAR NOT NULL,
    BithDate DATE NOT NULL,
    Sex CHAR NOT NULL,
    Salary INT NOT NULL,
    Adress CHAR NOT NULL,
    Super_SSN INT NOT NULL, # foregin key of essn for supperviseor
    Department_No INT NOT NULL , # froegin key of department number
    PRIMARY KEY (ESSN ),
    FOREIGN KEY (Super_SSN) REFERENCES Employee(ESSN)
      ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (Department_No) REFERENCES Department(Department_No) 
      ON DELETE CASCADE ON UPDATE CASCADE
);
 

Комментарии:

1. Ты забыл задать вопрос

2. ошибка sql указана в заголовке «неправильно сформировано ограничение внешнего ключа».

3. Какую базу данных вы используете?

4. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Похоже, вы находитесь в мире MySQL с болью от внешнего ключа 🙂

foreign key constraint is incorrectly formed ошибка чаще всего указывает на то, что родительский столбец и дочерний не могут находиться во взаимосвязи внешнего ключа, что не имеет ничего общего с синтаксисом опубликованного вами запроса.

  1. Убедитесь, что оба параметра Department.Department_No и Employee.Department_No являются INT (если нет — исправьте один из них)
  2. Убедитесь, что на Department.Department_No
  3. если это не поможет — запустите SHOW ENGINE INNODB STATUS и посмотрите LATEST FOREIGN KEY ERROR раздел для получения подробной информации-напишите здесь, если что-то там неясно.