SQL 创建表并设置自动增量值而不更改表

Posted

技术标签:

【中文标题】SQL 创建表并设置自动增量值而不更改表【英文标题】:SQL create table and set auto increment value without Alter table 【发布时间】:2015-06-11 18:34:45 【问题描述】:

例如,我正在创建下表:

创建表人员 ( ID int NOT NULL AUTO_INCREMENT, 姓 varchar(255) 非空, 名字 varchar(255), 地址 varchar(255), 主键 (ID) )

据我所知,Auto increment 的值可以像这样通过 Alter table 进行修改

ALTER TABLE 人员 AUTO_INCREMENT=100;

但我只是想知道有没有办法在创建表时设置自动增量的值?像这样?

创建表人员 ( ID int NOT NULL AUTO_INCREMENT = 100, 姓 varchar(255) 非空, 名字 varchar(255), 地址 varchar(255), 主键 (ID) )

【问题讨论】:

【参考方案1】:

是的,您可以在创建表格时这样做

CREATE TABLE Persons (
     ID int NOT NULL AUTO_INCREMENT,
     LastName varchar(255) NOT NULL,
     FirstName varchar(255),
     Address varchar(255),
     PRIMARY KEY (ID)
)AUTO_INCREMENT=100;

这是一个测试用例

mysql> CREATE TABLE Persons (
    ->      ID int NOT NULL AUTO_INCREMENT,
    ->      LastName varchar(255) NOT NULL,
    ->      FirstName varchar(255),
    ->      Address varchar(255),
    ->      PRIMARY KEY (ID)
    -> )AUTO_INCREMENT=100;
Query OK, 0 rows affected (0.13 sec)

mysql> insert into Persons (LastName) values ('CCC');
Query OK, 1 row affected (0.03 sec)

mysql> select * from Persons ;
+-----+----------+-----------+---------+
| ID  | LastName | FirstName | Address |
+-----+----------+-----------+---------+
| 100 | CCC      | NULL      | NULL    |
+-----+----------+-----------+---------+
1 row in set (0.00 sec)

【讨论】:

【参考方案2】:

试试这个

  CREATE TABLE Persons (
         ID int NOT NULL AUTO_INCREMENT,
         LastName varchar(255) NOT NULL,
         FirstName varchar(255),
         Address varchar(255),
         PRIMARY KEY (ID)
    )AUTO_INCREMENT=100;

【讨论】:

以上是关于SQL 创建表并设置自动增量值而不更改表的主要内容,如果未能解决你的问题,请参考以下文章

关于清除 Sql 表变量的自动增量值 [重复]

MySQL Workbench - 更改下一个自动增量值不起作用

如何获取表中的最后一个自动增量值? VB.NET

如何在 PL/SQL 中连接两个表而不创建新表

数据库表--增删改查的操作实例

sql server对已创建的表增加属性(自动增序)