Вашият проблем е, че не назовавате изрично вашите ограничения. Това оставя всяка база данни да избере име вместо вас. Номерът тук е да посочите изрично вашите ограничения на външния ключ, когато създавате действителните таблици както в MySQL, така и в MariaDB:
CREATE TABLE job_template (
...,
parent_id int NOT NULL,
CONSTRAINT your_constraint FOREIGN KEY fk_name (parent_id)
REFERENCES job_template(id) ON DELETE CASCADE
);
Но коригирането на непосредствената ви ситуация ще изисква повече работа. Една от възможностите би била да направите заявка в таблицата на информационната схема за съответната таблица, за да откриете действителните имена на ограничения:
USE INFORMATION_SCHEMA;
SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = 'your_db' AND
TABLE_NAME = 'job_template' AND
REFERENCED_COLUMN_NAME IS NOT NULL;
Това трябва да върне един запис за всяка колона и ограничение. С тази информация трябва да можете да изпълнявате текущите си изрази за промяна.
Това е достатъчно лесно да се направи с помощта на инструмент като Java или нещо подобно. Ако искате да направите това директно от базата данни, тогава ще ви трябва динамичен SQL, което вероятно означава писане на съхранена процедура.