SQL - Невозможно добавить новое ограничение внешнего ключа в SQL Fiddle - PullRequest
1 голос
/ 13 марта 2019

Я работаю над SQL Fiddle и пока код выглядит так:

CREATE TABLE IF NOT EXISTS `orders` ( 
`id` int(6) unsigned NOT NULL,
`date` DATE NOT NULL,
  `customerID` int(6) unsigned NOT NULL,
  `paymentAmmount` float(6) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  CONSTRAINT `FK_customers_customerID` FOREIGN KEY (`customerID`)
    REFERENCES `customers` (`customerID`) );
    
CREATE TABLE IF NOT EXISTS `items` ( 
`id` int(6) unsigned NOT NULL,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; 
  
CREATE TABLE IF NOT EXISTS `customers` ( 
`customerID` int(6) unsigned NOT NULL,
  `firstName` varchar(200) NOT NULL,
  `lastName` varchar(200) NOT NULL,
  `address` varchar(200) NOT NULL,
  #`accountId` int(6) unsigned NOT NULL,
  PRIMARY KEY (`customerID`) ) DEFAULT CHARSET=utf8; 
  
CREATE TABLE IF NOT EXISTS `items-orders` ( 
  `id` int(6) unsigned NOT NULL,
  `itemId` int(6) unsigned NOT NULL,
  `orderId` int(6) unsigned NOT NULL,
  `itemQuantity` int(1) unsigned NOT NULL,
  PRIMARY KEY (`id`), 
  KEY `FK_items_itemId` (`itemId`),
  CONSTRAINT `FK_items_itemId` FOREIGN KEY (`itemId`) REFERENCES `items` (`id`) ) DEFAULT CHARSET=utf8; 
  
CREATE TABLE IF NOT EXISTS `accounts` ( 
`id` int(6) unsigned NOT NULL,
  `email` varchar(200) NOT NULL,
  `passwordHash` varchar(200) NOT NULL,
  PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; 

Есть две строки, которые не работают:

 KEY `FK_customers_customerID` (`customerID`),
 CONSTRAINT `FK_customers_customerID` FOREIGN KEY (`customerID`) REFERENCES `customers` (`id`) ) DEFAULT CHARSET=utf8;

Я пытаюсь связать переменную 'customerID' в таблице 'orders' с той же переменной в таблице 'customer'. Он работал с таблицами 'items-orders' и 'items', но теперь я продолжаю получать это сообщение:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'KEY `FK_customers_customerID` (`customerID`), CONSTRAINT `FK_customers_customer' at line 1

Я действительно не знаю, как это исправить, любая помощь будет оценена.

1 Ответ

1 голос
/ 13 марта 2019

Первичный ключ у клиентов - CustomerId, поэтому вам нужно использовать его:

CONSTRAINT `FK_customers_customerID` FOREIGN KEY (`customerID`)
    REFERENCES `customers` (`customerID`) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...