Why is it that when I drop a field in table it says `#1050 - Table already exist` I want to drop some fields of a table but it returns an error. 
the query is..

ALTER TABLE `tbl_incoming_bub` DROP `approved_date`, DROP `approved_by`, DROP `incoming_date`, DROP `incoming_by`, DROP `obligate_date`, DROP `obligate_by`, DROP `journal_date`, DROP `journal_by`, DROP `ana_date`, DROP `ana_by`;


and the error is.. #1050 - Table 'ncddp/#sql-ib176' already exists

Here is the screenshots..
Check out this post by Aleksandr Kuzminsky who not only provides a solution, but also (and maybe more importantly) an explanation of what's going on. Kuzminsky is a former Percona employee (Percona is a big hitter in the MySQL ecosphere) and a contributor to open source MySQL projects on Launchpad.

Basically, what happens is this

When you run an alter table, MySQL creates a temporary table with the new structure. The name of the new table is (something like) #sql-ib712. 

It appears that MySQL doesn't choose very random names for these temporary tables. The problem arises when there's a crash in the middle of the ALTER TABLE process and the dictionary ends up with an orphaned table. Which wouldn't be a problem, except that MySQL (due to the non-random nature of temp table naming) has a good chance of giving the same name to a subsequent temporary table.

Obviously, Kuzminsky goes into a bit more detail, and provides a script to help fix your database.