1 Востаннє редагувалося Eff1c (27.11.2019 14:07:53)

Тема: Не створюються зв'язки

Код

CREATE TABLE `client` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `full_name` varchar(255),
  `personal_account` int,
  `login` varchar(255),
  `password` varchar(255)
);

CREATE TABLE `admin` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `access_id` int,
  `full_name` varchar(255),
  `login` varchar(255),
  `password` varchar(255)
);

CREATE TABLE `access` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `name` varchar(255)
);

CREATE TABLE `bank_account` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `account` int
);

CREATE TABLE `products` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `id_admin` int,
  `name` varchar(255),
  `price` int,
  `size` varchar(255),
  `colour` varchar(255),
  `location` varchar(255)
);

CREATE TABLE `buy_list` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `id_products` int,
  `id_client` int,
  `id_bank_account` int,
  `date` datetime
);

ALTER TABLE `client` ADD FOREIGN KEY (`id`) REFERENCES `buy_list` (`id_client`);

ALTER TABLE `products` ADD FOREIGN KEY (`id`) REFERENCES `buy_list` (`id_products`);

ALTER TABLE `products` ADD FOREIGN KEY (`id_admin`) REFERENCES `admin` (`id`);

ALTER TABLE `buy_list` ADD FOREIGN KEY (`id_bank_account`) REFERENCES `bank_account` (`id`);

ALTER TABLE `access` ADD FOREIGN KEY (`id`) REFERENCES `admin` (`access_id`);

Назва БД - eff1c

Вибиває помилку

#1005 - Не можу створити таблицю `eff1c`.`client` (помилка: 150 "Foreign key constraint is incorrectly formed")

При створенні через графічний інтерфейс (PHPMyAdmin)
Designer->створити зв'язок
Вибиває помилку

Помилка: Зв'язки не вдалося додати!
#1062 - Duplicate entry 'eff1c-eff1c.buy_list-id_products' for key 'PRIMARY'

2

Re: Не створюються зв'язки

Перевірте свій код.

Прихований текст

Підказка: лише два зв'язки написані правильно.
При створенні зв'язку між таблицями до першої таблиці  додаємо зовнішній ключ (потрібно написати зв'язок таблиці до іншої) і посилається цей зв'язок таблиці на іншу таблицю.

(ALTER TABLE 'назва таблиці'ADD FOREIGN KEY (`id_описаний зв'язок`) REFERENCES `назва іншої таблиці`('її id'); )
Подякували: Eff1c1

3

Re: Не створюються зв'язки

Дякую)
Цікаво те, що я допускав таку помилку і спробував такий код

ALTER TABLE `buy_list` ADD FOREIGN KEY (`id_client`) REFERENCES `client` (`id`);

І тоді він чомусь не спрацював. Правда, я після того вирішив xampp перевстановити  *SCRATCH*