Why do we create temp tables for MySQL imports?

When we run MySQL imports there might be a warning that the import failed to create a temp table.

We try to create temporary tables (which are gone once the session closes), to import from there. This process will make the imports faster and doesn’t compete with other write queries going to the same table during the import.

Does this mean we can only import when the user has editing rights?

It would also work with a user that has read-only permissions, and just log a warning that it couldn’t create the temp table.