The simple difference is that approve
updates the approval to a specific (given) amount, while increaseAllowance
increases the current allowance by the given amount. The former is part of the ERC20 standard, while the latter is not. So some ERC20 tokens include the latter and some don't.
The reason the latter was introduced is a minor frontrunning issue with allowances. The main idea is that using the basic approve
function allows someone to sort of double-use allowances. You can read more about the issue for example here: https://blog.smartdec.net/erc20-approve-issue-in-simple-words-a41aaf47bca6
So, if the token contract has the increaseAllowance
function, it should be used when increasing the allowance. But the approve
is always there, so it can be used if the other function isn't there.