Parte 1: Personalmente non farei in batch più istruzioni all'interno di una singola query per ridurre il rischio di SQL injection. Questa è un'impostazione all'interno dell'origine dati nell'amministratore di ColdFusion. L'esecuzione di una procedura memorizzata, che potrebbe essere quello che stai facendo (?), è un'altra storia, ma dovresti riformulare la tua domanda in "Ottieni la chiave primaria dopo l'inserimento con la procedura memorizzata MySQL" se questa è la tua intenzione.
Parte 2: ColdFusion, come molte cose, rende molto facile ottenere la chiave primaria per un record appena inserito, anche se si utilizzano chiavi di incremento automatico, GUID o qualcosa come ROWNUM di Oracle. Funzionerà su quasi tutti i database supportati da Adobe ColdFusion, inclusi MSSQL o MySQL. L'unica eccezione è la versione del databse, ad esempio MySQL 3 non lo supporterà; tuttavia, MySQL 4+ lo farà.
<cfquery result="result">
INSERT INTO myTable (
title
) VALUES (
<cfqueryparam value="Nice feature!" cfsqltype="cf_sql_varchar">
)
</cfquery>
<--- get the primary key of the inserted record --->
<cfset NewPrimaryKey = result.generatedkey>
A partire da CF9+, puoi accedere al nuovo ID (per qualsiasi database) utilizzando il nome chiave generico:
result.GENERATEDKEY // All databases
Per CF8, database diversi avranno chiavi diverse all'interno del valore dei risultati. Ecco una semplice tabella di aiuto che ho copiato dalla documentazione cfquery .
result.identitycol // MSSQL
result.rowid // Oracle
result.sys_identity // Sybase
result.serial_col // Informix
result.generated_key // MySQL
Se hai domande puoi vedere un bel dump come segue:
<cfdump var="#result#" />