Es muy probable que sus sourcecodes_tags la tabla contiene sourcecode_id valores que ya no existen en sus sourcecodes mesa. Tienes que deshacerte de eso primero.
Aquí hay una consulta que puede encontrar esos ID:
SELECT DISTINCT sourcecode_id FROM
sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id
WHERE sc.id IS NULL;