Pokud se podíváte na výsledek vašeho dotazu, cizí klíč bid_ibfk_3
již existuje . Ve skutečnosti je ve druhém řádku výsledku.
def projekt_classics bid_ibfk_2 projekt_classics bid FOREIGN KEY
--the row below is the foreign key that you are trying to create
def projekt_classics bid_ibfk_3 projekt_classics bid FOREIGN KEY
def projekt_classics car_ibfk_1 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_3 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_4 projekt_classics car FOREIGN KEY
def projekt_classics car_brand_ibfk_1 projekt_classics car_brand FOREIGN KEY
To je důvod, proč dostáváte duplicitní název omezení cizího klíče, když se pokoušíte provést toto:
ADD CONSTRAINT `bid_ibfk_3` FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`)
Svůj dotaz můžete upravit tak, abyste nejprve zkontrolovali, zda cizí klíč, který se pokoušíte vytvořit, neexistuje, než jej skutečně vytvoříte.
IF NOT EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = DATABASE()
AND CONSTRAINT_TYPE = 'FOREIGN KEY'
AND CONSTRAINT_NAME = 'bid_ibfk_3') THEN
ALTER TABLE `bid` ADD CONSTRAINT `bid_ibfk_3`
FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`);
END IF