> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data.md).

# Inserting & Loading Data

{% columns %}
{% column %}
{% content-ref url="/pages/goiYf1ZHEinyp8rdtFnA" %}
[Concurrent Inserts](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/concurrent-inserts.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Understand concurrent inserts in MyISAM. This feature allows SELECT statements to run simultaneously with INSERT operations, reducing lock contention and improving performance.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/RD9vdzu82RWioCi4Nvqt" %}
[IGNORE](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/ignore.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Learn about the IGNORE keyword. This modifier suppresses certain errors during statement execution, downgrading them to warnings to allow the operation to proceed.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/GDD3FlhmnK6PK3F7NDfm" %}
[INSERT](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete guide to inserting data in MariaDB. Complete INSERT syntax for single rows, bulk operations, and ON DUPLICATE KEY handling for production use.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/7Os49dwV69FGRCil2XlV" %}
[INSERT - Default & Duplicate Values](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert-default-duplicate-values.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Handle default and duplicate values during insertion. Learn how MariaDB manages missing columns and how to resolve duplicate key conflicts using various strategies.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/WMUwDfyOVzihcNTOEkJQ" %}
[INSERT DELAYED](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert-delayed.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Queue inserts for later execution. This MyISAM-specific extension returns control immediately to the client while the server inserts rows when the table is free.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/UPZLvlfcmxdSuK9ifXuZ" %}
[INSERT IGNORE](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert-ignore.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete INSERT IGNORE reference: ignore insert errors and warnings, duplicate key error handling, invalid value coercion, and SHOW WARNINGS compatibility.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/aaEkWTJXfZmd0C95kriP" %}
[INSERT ON DUPLICATE KEY UPDATE](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert-on-duplicate-key-update.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete guide to inserting data in MariaDB. Complete INSERT syntax for single rows, bulk operations, and ON DUPLICATE KEY handling for production use.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/ZbKc2G2XEARN0AjwEeL8" %}
[INSERT SELECT](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert-select.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Copy data between tables. This statement inserts the result set of a SELECT query directly into a target table, enabling efficient bulk data transfer.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/5tX2BS1FcMKSzJdRUDVu" %}
[INSERT...RETURNING](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insertreturning.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Insert rows and immediately retrieve the results. This extension returns the inserted values, including auto-increments and defaults, in the same round trip.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/ykuD0CKSBb7eUIP8bQ1f" %}
[LOAD Data into Tables or Index](/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/load-data-into-tables-or-index.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Bulk load data efficiently. This section covers commands like LOAD DATA INFILE and LOAD XML for high-speed data import from text or XML files.
{% endcolumn %}
{% endcolumns %}
