Sql Insert into with duplicate key
Your SQL statement specifies the behavior you are seeing with ON DUPLICATE KEY UPDATE. This syntax is shorthand for logic that causes an insert only if the key does not exist, and an update of the row identified by that key if it does exist. See the MySQL documentation for more info.

Since ON DUPLICATE KEY UPDATE only operates on primary keys or unique indexes, you cannot insert another row with the same key anyway. If multiple records with the same identifier are required in the table, you must make that identifier something other than the primary key or remove the unique constraint on the index.