You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by mv...@apache.org on 2006/01/26 18:37:31 UTC

svn commit: r372576 - /db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java

Author: mvdb
Date: Thu Jan 26 09:37:28 2006
New Revision: 372576

URL: http://svn.apache.org/viewcvs?rev=372576&view=rev
Log:
Fixed errors when inserting data in a table with an autoincrement primary field.
Normally mysql will return the LAST_INSERT_ID as the column name for the inserted id. Since ddlutils expects the real column name of the field that is autoincrementing, the column has an alias of that column name.

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java?rev=372576&r1=372575&r2=372576&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java Thu Jan 26 09:37:28 2006
@@ -76,10 +76,18 @@
 
     /**
      * {@inheritDoc}
+     * Normally mysql will return the LAST_INSERT_ID as the column name for the inserted id.
+     * Since ddlutils expects the real column name of the field that is autoincrementing, the
+     * column has an alias of that column name.
      */
     public String getSelectLastInsertId(Table table)
     {
-        return "SELECT LAST_INSERT_ID()";
+        String autoIncrementKeyName = "";
+        if (table.getAutoIncrementColumns().length > 0)
+        {
+            autoIncrementKeyName = table.getAutoIncrementColumns()[0].getName();
+        }
+        return "SELECT LAST_INSERT_ID() " + autoIncrementKeyName;
     }
 
     /**