Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server (Not)   Client   Old   Guides   Examples
New in version: 6.0   6.1   6.2   6.3   6.4   6.5   7.0   7.1   7.2   7.3    Statistic  


Inserts a lot of records queried from a database.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
FM FMSQL 6.0 Yes Yes Yes Yes Yes

MBS( "FM.InsertRecordQueryIgnoreDuplicates"; InsertFileName; InsertTableName; FieldNames; QueryFileName; SQL Statement { ; Params } )


Parameter Description Example value
InsertFileName The file name of where the insert table is inside. Can be empty to look for the table in all files. Get(FileName)
InsertTableName The name of the table to insert record into. "Assets"
FieldNames A list of field names for the insert.
Empty entries in the list are ignored.
QueryFileName The file name for the database to run the query against. Can be empty to look for the table in all files. Get(FileName)
SQL Statement SQL Statement as a Text string
Params Optional
Pass here parameters. One parameter to this function for each parameter you want to pass to the SQL statement.


Returns OK or error.


Inserts a lot of records queried from a database.
Same as FM.InsertRecordQuery, but ignores duplicate records.
On success returns the number of duplicate records instead of OK if there were any.
This function allows to easily copy a lot of records from one table to another table.
Copy can be from one database to other or within same database. Also from one table to other or within a table. Due to passing in new field names, you can even rearrange values from one column to other while copying. In the SQL you can use functions for sums or join data from several tables together to fill a new table. Filename parameters can be empty.
Use FM.ExecuteSQL.LastErrorMessage and FM.ExecuteSQL.LastError to see error message.
Reports an error if field name list doesn't match column count of the query result.
Does not copy text styles, only plain text for text fields.

The duplicate check is based on FileMaker checking if a field is unique, e.g. the record ID.
For inserting records from other database (e.g. MySQL), please use SQL.InsertRecords function.

With plugin version 7.2 or later, you can specify fields and table via IDs and the plugin will lookup them for you at runtime. Table IDs and table names must be unique across all open files for this to work correctly.


Copy records within one table in same file:

MBS( "FM.InsertRecordQueryIgnoreDuplicates"; ""; "Contacts"; "First¶Last¶Company"; ""; "SELECT \"First\", \"Last\", \"Company\" FROM Contacts" )

Copy records from a table from one database to other (production to development)

MBS( "FM.InsertRecordQueryIgnoreDuplicates"; "ContactsDev.fmp12"; "Contacts"; "First¶Last¶Company"; "Contacts.fmp12"; "SELECT \"First\", \"Last\", \"Company\" FROM Contacts" )

Copy data to other table:

MBS( "FM.InsertRecordQueryIgnoreDuplicates"; ""; "Test"; "FirstName¶LastName¶CompanyName"; ""; "SELECT \"First\", \"Last\", \"Company\" FROM Contacts" )

Query sum of sales grouped by customers in a sales report table:

MBS( "FM.InsertRecordQueryIgnoreDuplicates"; ""; "SalesReport"; "SumSales¶CustomerID"; ""; "SELECT sum(\"InvoiceTotal\"), \"CustomerID\" FROM Clients, Invoices WHERE Invoices. CustomerID = Clients.CustomerID GROUP by CustomerID" )

Copy two fields from one table to other:

MBS( "FM.InsertRecordQueryIgnoreDuplicates"; ""; "ASC Apple Script"; "Name¶Script"; ""; "select * from \"AppleScript\"")

See also

FM.InsertRecordQuery   -   FM.InsertRecordTSV

Feedback: Report problem or ask question.

MBS Xojo tutorial videos