Как исправить ошибку «Не удалось добавить ограничение внешнего ключа. Отсутствует индекс для ограничения« Transactions_ibfk_1 »в указанной таблице« account »» - PullRequest
0 голосов
/ 06 февраля 2019

Попытка создать внешний ключ и продолжать получать это сообщение:

Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа.Отсутствует индекс для ограничения 'Transactions_ibfk_1' в ссылочной таблице 'account'

Очень плохо знаком с программированием и sql в целом, извините, если это просто.

CREATE DATABASE IF NOT EXISTS bank;
USE bank;
CREATE TABLE IF NOT EXISTS account
(
account_id int primary key auto_increment,
balance double,
type varchar(30),
date_opened datetime,
status varchar(30)
);
CREATE TABLE IF NOT EXISTS transactions
(
transaction_id int primary key auto_increment,
date_time datetime,
amount double,
remaining_balance double,
account_id int
);
alter table transactions
add foreign key(account_id)
references account(account_id)
on delete cascade
on update cascade;

1 Ответ

0 голосов
/ 06 февраля 2019

Я думаю, что имя внешнего ключа должно быть другим.для последней части, т.е. создания внешнего ключа, попробуйте следующий фрагмент кода

ALTER TABLE `bank`.`transactions` 
ADD INDEX `fk_account_id_idx` (`account_id` ASC);
ALTER TABLE `bank`.`transactions` 
ADD CONSTRAINT `fk_account_id`
  FOREIGN KEY (`account_id`)
  REFERENCES `bank`.`account` (`account_id`)
  ON DELETE CASCADE
  ON UPDATE CASCADE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...