Aparat pamięci masowej MyISAM nie obsługuje ograniczeń kluczy obcych. Ograniczenie jest analizowane, ale po cichu ignorowane.
Aby rozwiązać problem, użyj silnika InnoDB (dla obu tabel).
CREATE TABLE ( ... ) ENGINE = InnoDB ... ;
Zamiast upuszczać tabele i je odtwarzać, możesz również zmienić silnik przechowywania:
ALTER TABLE myDB.app_info ENGINE = InnoDB;
ALTER TABLE myDB.tab_info ENGINE = InnoDB;
Po zmianie silnika będziesz musiał ponownie dodać ograniczenie klucza obcego.