I'm not a paint expert, but I will pass on what I have read.
Epoxy primer is used on bare metal (it is like an etching primer). It is a 2 part paint, meaning it has a catylist. It does not sand well, so it is merely a place to start for bare metal.
Urethane primer is a sandable primer. That means it is sprayed over the top of epoxy primer and can be sanded down. The intent is you spray a coat on, sand it down, spray a coat on, sand it down. This way it hides imperfections. It is usually not waterproof, so it is not a good topcoat.
Enamel primer is the same as urethane primer, but is meant to go under enamal topcoats.
NOTE - If you use a lacquer based topcoat, use a lacquer based primer. If you use an enamal topcoat, use an enamel primer. If you use a urethane topcoat, use a urethane primer.