[development] Adding auto-increment to an existing table

Sascha Grossenbacher saschagros at gmail.com
Fri Sep 24 20:29:24 UTC 2010


On Fri, Sep 24, 2010 at 10:02 PM, nan wich <nan_wich at bellsouth.net> wrote:
> user warning: Incorrect table definition; there can be only one auto column
> and it must be defined as a key query: update_sql /* admin : update_sql */
> ALTER TABLE client_activity ADD `id` INT auto_increment DEFAULT NULL in
> C:\www\webapps\drupal6\includes\database.mysql-common.inc on line 298.

Try using the $new_keys argument of db_change_field() to create the
primary key at the same time. If that doesn't work either (possible if
it does it in a separate query), then do not remove the primary key
before making the field autoincrement.

Also, if you need to do that and this code needs to run on PostgreSQL
too, then you need to make it conditional and only remove/re-add the
key for PostgreSQL.


More information about the development mailing list