CiviCRM 4.7.29 Update Indices fails
Here is the possible solution for this. Try running the sql queries through shell or phpmyadmin and than re-run the update indices.

Looking at the db error i can see civirm_entity_financial_account have duplicate rows. Please get rid of one row or all with entity_id = 0 as it doesn't make sense and then re-run update indices.

Delete civicrm_entity_financial_account where entity_id = 0 and entity_table = 'civicrm_financial_type';