How to use a trigger to only insert one row
Instead of INSERT, use INSERT IGNORE or INSERT ... ON DUPLICATE KEY UPDATE.

The former (IGNORE) checks UNIQUE key(s) to avoid inserting a second time.  The latter (IODKU) will either insert a new row or update an existing row (based on any UNIQUE key(s)).