Я не совсем парень из MySQL, но:
Я считаю, что проблема в том, что вы ссылаетесь только на часть первичного ключа: ваша таблица addon_account имеет составной ключ PK (id, name).
Итак, чтобы ваши отношения работали, вам также необходимо добавить 'account_id' как часть внешнего ключа:
ALTER TABLE addon_account_data ADD FOREIGN KEY (account_id, account_name) REFERENCES addon_account(id, name)
Этот поток связан счто-то похожее.
Надеюсь, это поможет.
EDITED
Я установил экземпляр сервера MySQL на свою локальную машину ... (MySQL 8).
Я запустил приведенный ниже скрипт, и он сработал (давая предупреждения о том, что целочисленное отображение является устаревшей функцией, поэтому я бы рекомендовал его пропустить):
CREATE TABLE addon_account(
id INT(11) NOT NULL,
`name` VARCHAR(60) NOT NULL,
label VARCHAR(255),
shared INT(11),
CONSTRAINT pk_addon_account PRIMARY KEY(id, `name`));
CREATE TABLE addon_account_data (
id INT(11) NOT NULL,
account_name VARCHAR(60) NOT NULL,
account_id INT(11),
money DOUBLE,
`owner` VARCHAR(255),
CONSTRAINT pk_addon_account_data PRIMARY KEY(id, account_name),
CONSTRAINT fk_addon_account_account_data FOREIGN KEY(account_id, account_name)
REFERENCES addon_account(id, `name`));
Не могли бы вы попробоватьи посмотреть, если это работает для вас?
Я не так хорошо знаком с MySQL.