Bohužel k automatickému smazání, o kterém si myslíte, že by mělo dojít, nedojde. Budete muset ručně odstranit řádky v tabulce B, které obsahují ID, z řádku v tabulce A, který chcete odstranit.
Zkuste přidat ON DELETE CASCADE na definici sloupce cizího klíče v tabulce B.
Pokud používáte Hibernate nebo nějaký jiný ORM nástroj, měl by „kaskádový“ mechanismus, který by to řešil automaticky. Ale protože zde pracujete přímo s databází, musíte mít na paměti, že řádek nelze smazat, pokud ID uvedeného řádku existuje v jakékoli jiné tabulce jako cizí klíč (jako ve vašem případě primární klíč A existuje v některé řádky v B). Pokud samozřejmě nezadáte vlastnost ON DELETE CASCADE.