Mysql
 sql >> база данни >  >> RDS >> Mysql

Вземете ID на таблицата след вмъкване с ColdFusion и MySQL

Част 1: Аз лично не бих събирал множество изрази в рамките на една заявка, за да намаля риска от SQL инжекция. Това е настройка във вашия източник на данни на администратора на ColdFusion. Изпълнението на съхранена процедура, което може да е това, което правите (?), е друга история, но трябва да префразирате въпроса си на „Вземете първичен ключ след вмъкване с mySQL Stored Procedure“, ако това е вашето намерение.

Част 2: ColdFusion, както много неща, прави получаването на първичния ключ за нововмъкнат запис много лесно - дори ако използвате ключове за автоматично увеличение, GUID или нещо като ROWNUM на Oracle. Това ще работи с почти всяка база данни, поддържана от 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 различните бази данни ще имат различни ключове в стойността на резултатите. Ето една проста таблица в помощ, която копирах от документа .

result.identitycol    // MSSQL
result.rowid          // Oracle
result.sys_identity   // Sybase
result.serial_col     // Informix
result.generated_key  // MySQL

Ако имате някакви въпроси, можете да видите доста сметище, както следва:

<cfdump var="#result#" />


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MAX функция в where клауза mysql

  2. Как да отворя MySQL на моя Raspberry Pi за външни/отдалечени връзки?

  3. Съхранена процедура, която автоматично изтрива редове, по-стари от 7 дни в MYSQL

  4. Как да получите обратно данни от Mysql за дни, в които няма статистика

  5. Как да запазя стойностите на колона уникални в MySQL?