0

我的一位教授问我“在 sql 中从 ie 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;
4

2 回答 2

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;

IMO 最好不要为此使用自动增量/身份列,但如果你确实使用它们,你真的不想让它们从 1 开始,因为它会违反检查约束。

于 2013-11-02T19:33:02.347 回答
0

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

于 2013-11-02T19:24:17.707 回答