Часть 1: Лично я бы не собирал несколько операторов в одном запросе, чтобы снизить риск внедрения SQL-кода.Это параметр в вашем источнике данных для администратора ColdFusion.Выполнение хранимой процедуры, которая может быть тем, чем вы занимаетесь (?), Это еще одна история, но вам следует перефразировать ваш вопрос в «Получить первичный ключ после вставки с помощью хранимой процедуры MySQL», если это ваше намерение.
Часть 2: ColdFusion, как и многие другие вещи, делает получение первичного ключа для вновь вставленной записи очень простым - даже если вы используете ключи автоинкремента, GUID или что-то вроде Oracle ROWNUM.Это будет работать практически с любой базой данных, поддерживаемой Adobe ColdFusion, включая MSSQL или MySQL.Единственным исключением является версия базы данных - например, MySQL 3 не будет поддерживать это;однако MySQL 4+ будет.
<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>
Начиная с CF9 +, вы можете получить доступ к новому идентификатору (для любой базы данных), используя имя общего ключа:
result.GENERATEDKEY // All databases
Для CF8, другойбазы данных будут иметь разные ключи в пределах значения результатов.Вот простая таблица, которую я помог скопировать из документации cfquery .
result.identitycol // MSSQL
result.rowid // Oracle
result.sys_identity // Sybase
result.serial_col // Informix
result.generated_key // MySQL
Если у вас есть какие-либо вопросы, вы можете увидеть симпатичный дамп следующим образом:
<cfdump var="#result#" />