Reputation: 1
Below is my SQL file and the table is not created when I try to insert more than 1 foreign keys in the sql. The error is ""Foreign key constraint is incorrectly formed
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)
);
From the (now deleted) comments:
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)
);
Upvotes: 0
Views: 37
Reputation: 7377
You have to specify once the foreing key creation and add both columns. Check the below
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) )
As per the DDL you provided and specfyin the table name as 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)
)
Upvotes: 1