53
create table tablename (
    id integer unsigned not null AUTO_INCREMENT,
    ....
    primary key id
);

I need the primary key to start from 1000.

I'm using MySQL.

5 Answers 5

100

If your table has already been created with an auto-increment. so you can use

ALTER TABLE tbl AUTO_INCREMENT = 1000;

otherwise put the AUTO_INCREMENT = 1000; in your CREATE TABLE

it goes before the final );

44

You can use ALTER TABLE to accomplish this:

ALTER TABLE tablename AUTO_INCREMENT = 1000;

If you want it as part of the CREATE TABLE statement, just put it after the table definition:

CREATE TABLE tablename (
  ...
) ENGINE=InnoDB AUTO_INCREMENT=1000;
1
  • Is there a way we can do this in model definition?
    – webbyfox
    Commented Jun 13, 2018 at 6:52
7
ALTER TABLE yourtable AUTO_INCREMENT = 1000
0

little bit about your code NOT NULL is redundant as primary key specifies NOT NULL & UNIQUE on id.

answering your primary question for auto incrementing to start from 1000 execute the following SQL query.

CREATE TABLE tablename (
    id integer unsigned not null AUTO_INCREMENT,
    ....
    primary key (id)
) AUTO_INCREMENT=1000;

If you want to alter the existing table for id to start from 1000 then there are two ways you can achieve this.

ALTER TABLE tablename  MODIFY id int unsigned AUTO_INCREMENT primary key, AUTO_INCREMENT=3;

or

ALTER TABLE tablename AUTO_INCREMENT = 1000;
-4

Well in such a situation, i simply open up my mysql client software and i type 1000, etc right in the primary key field. The record getting inserted will have ids greater than 1000 now.

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.