Seu problema é que você não está nomeando explicitamente suas restrições. Isso deixa cada banco de dados para escolher um nome para você. O truque aqui é nomear explicitamente suas restrições de chave estrangeira, quando você cria as tabelas reais no MySQL e no 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
);
Mas consertar sua situação imediata exigiria mais trabalho. Uma opção seria consultar a tabela de esquema de informações, para a tabela envolvida, para descobrir os nomes reais das restrições:
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;
Isso deve retornar um registro para cada coluna e restrição. Com essas informações, você poderá executar suas instruções alter atuais.
Isso é bastante fácil de fazer usando uma ferramenta como Java ou algo semelhante. Se você quiser fazer isso diretamente do banco de dados, precisará de SQL dinâmico, o que provavelmente significa escrever um procedimento armazenado.