在sql中设置auto_increment而不是1的用法(好处)是什么?

时间:2013-11-02 18:59:08

标签: sql

我的一位教授问我“在sql中从5000分配auto_increment起始值的实际用法或好处是什么?”他告诉我尝试搜索你会发现一些有趣的东西,但我尝试了很多,我无法'找到技术答案。是否存在任何技术参考或者它只是一项可选任务。

CREATE TABLE animals (
    grp ENUM('fish','mammal','bird') NOT NULL,
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (grp,id)
) ENGINE=MyISAM AUTO_INCREMENT=500;

2 个答案:

答案 0 :(得分:1)

一种可能的用法是在创建SQL Server调用分区视图时:

create table ObjectsOfTypeA (
  id int identity(10000, 1) primary key,
  check (id between 10000 and 19999),
  somefield varchar(10) );

create table ObjectsOfTypeB (
  id int identity(20000, 1) primary key,
  check (id between 20000 and 29999),
  somefield varchar(10) );

create table ObjectsOfTypeC (
  id int identity(30000, 1) primary key,
  check (id between 30000 and 39999),
  somefield varchar(10) );

create view AllObjects as
select * from ObjectsOfTypeA
union all
select * from ObjectsOfTypeB
union all
select * from ObjectsOfTypeC;

最好不要使用自动增量/标识列,但如果你使用它们,你真的不希望它们从1开始,因为它会然后违反检查约束。

答案 1 :(得分:0)

在数据库复制中使用一些自动增量以使文章保持一致。