Я не могу создать таблицу в SQL при вводе нескольких внешних ключей

0

Ниже мой SQL файл, и таблица не создается, когда я пытаюсь вставить более 1 внешних ключей в sql. Ошибка: "Внешнее ограничение ключа неверно сформировано

 CREATE TABLE company_domaindetails (
    domain_id int NOT NULL,
    domain_name VARCHAR(200) NOT NULL,
    domain_provider VARCHAR(200) NOT NULL,
    domain_accoemail VARCHAR(200) NOT NULL,
    domain_allopassword VARCHAR(200) NOT NULL,
    domain_dns VARCHAR(200) NOT NULL,
    domain_timeframe VARCHAR(200) NOT NULL,
    domain_daysremaining VARCHAR(200) NOT NULL,
    company_id int,
    company_name varchar(200),
    PRIMARY KEY (domain_id),
    FOREIGN KEY (company_id) REFERENCES company_details(company_id),
    FOREIGN KEY (company_name) REFERENCES company_details(company_id)    
);

Из (теперь удаленных) комментариев:

CREATE TABLE company_details
(
   company_id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
   company_name VARCHAR(200) NOT NULL, 
   company_address VARCHAR(200), 
   company_contactperson VARCHAR(200), 
   company_contactno VARCHAR(200), 
   company_email VARCHAR(200) 
); 
  • 1
    Последний выглядит немного странно. Имя для идентификатора.
  • 1
    Плохая нормализация в любом случае. Пропустите столбец company_name в этой таблице.
Показать ещё 4 комментария
Теги:

1 ответ

1

Вы должны указать один раз, когда создаете ключ, и добавьте оба столбца. Проверьте ниже

CREATE TABLE company_details ( company_id int NOT NULL, company_name VARCHAR(200) NOT NULL,
 company_address VARCHAR(200), company_contactperson VARCHAR(200),
  company_contactno VARCHAR(200), company_email VARCHAR(200),
 PRIMARY KEY (company_id,company_name) )

В соответствии с DDL вы предоставили и специфицировали имя таблицы как company_domaindetails

CREATE TABLE company_domaindetails (
    domain_id int NOT NULL,
    domain_name VARCHAR(200) NOT NULL,
    domain_provider VARCHAR(200) NOT NULL,
    domain_accoemail VARCHAR(200) NOT NULL,
    domain_allopassword VARCHAR(200) NOT NULL,
    domain_dns VARCHAR(200) NOT NULL,
    domain_timeframe VARCHAR(200) NOT NULL,
    domain_daysremaining VARCHAR(200) NOT NULL,
    company_id int not null,
    company_name varchar(200),
    PRIMARY KEY (domain_id,company_name),
    FOREIGN KEY (company_id,company_name) REFERENCES company_details(company_id,company_name)
    )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню