आपका ALTER TABLE table ADD CONSTRAINT foreign_key FOREIGN KEY
वही हैं, इसलिए वे त्रुटि का कारण नहीं हो सकते।
(...पाठ हटा दिया गया)
उस अजीब व्यवहार की व्याख्या नहीं कर सकता। समाधान सुझा सकते हैं:
SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM A WHERE ID=1;
SET FOREIGN_KEY_CHECKS = 1;