You are here:  » auto_increment not working


auto_increment not working

Submitted by Lera on Thu, 2013-01-31 06:20 in

I'm trying to import an XML file but start the ID keys at a higher number, but running this is still giving me keys starting at 1. Any idea what's wrong?

<?php
  require("database.inc.php");
  $sql = "
    DROP TABLE IF EXISTS `data`
    ";
  database_queryModify($sql,$result);
  $sql = "
    CREATE TABLE `data`
    (
    idkey INT(11) NOT NULL auto_increment,
    field1 VARCHAR(255) NOT NULL default '',
    field2 VARCHAR(255) NOT NULL default '',
    field3 VARCHAR(255) NOT NULL default '',
    PRIMARY KEY (idkey)
    ) AUTO_INCREMENT=100001
    ENGINE=MyISAM;
    ";
  database_queryModify($sql,$result);
  print "Done. Table created.";
?>

Submitted by support on Thu, 2013-01-31 09:30

Hi Lera,

The syntax looks absolutely fine, and it I just double checked directly in MySQL for you:

mysql> CREATE TABLE `data`
    -> (
    -> idkey INT(11) NOT NULL auto_increment,
    -> field1 VARCHAR(255) NOT NULL default '',
    -> field2 VARCHAR(255) NOT NULL default '',
    -> field3 VARCHAR(255) NOT NULL default '',
    -> PRIMARY KEY (idkey)
    -> ) AUTO_INCREMENT=100001
    -> ENGINE=MyISAM;
Query OK, 0 rows affected (0.12 sec)
mysql> insert into `data` set field1='foo',field2='bar';
Query OK, 1 row affected (0.04 sec)
mysql> select * from data;
+--------+--------+--------+--------+
| idkey | field1 | field2 | field3 |
+--------+--------+--------+--------+
| 100001 | foo | bar | |
+--------+--------+--------+--------+
1 row in set (0.00 sec)

As an alternative, AUTO_INCREMENT can be set with an ALTER TABLE query; so perhaps have a go with:

<?php
  
require("database.inc.php");
  
$sql "
    DROP TABLE IF EXISTS `data`
    "
;
  
database_queryModify($sql,$result);
  
$sql "
    CREATE TABLE `data`
    (
    idkey INT(11) NOT NULL auto_increment,
    field1 VARCHAR(255) NOT NULL default '',
    field2 VARCHAR(255) NOT NULL default '',
    field3 VARCHAR(255) NOT NULL default '',
    PRIMARY KEY (idkey)
    )
    ENGINE=MyISAM;
    "
;
  
database_queryModify($sql,$result);
  
$sql "ALTER TABLE `data` AUTO_INCREMENT=100001";
  
database_queryModify($sql,$result);
  print 
"Done. Table created.";
?>

Hope this helps!
Cheers,
David
--
MagicParser.com