当前位置: 首页 > 知识库问答 >
问题:

SQL创建表并设置自动增量值,无需更改表

孙思源
2023-03-14

例如,我正在创建下表:

创建人员表(

据我所知,Auto增量的值可以通过Alter表修改,如下所示

更改表人员AUTO_INCREMENT=100;

但我只是想知道,在创建表时是否有一种方法可以设置自动增量的值<像这样的事?

创建人员表(

共有2个答案

逑衡
2023-03-14

试试这个

  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;
井通
2023-03-14

是的,您可以在将表创建为

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)
 类似资料:
  • 试图用hibernate创建表,但它已经创建并删除了。 hibernate.cfg.xml:

  • 问题内容: 我现在正在一家公司中使用全球DBA的无限智慧,他创建了一个表,该表将一个int用作ID字段,但是不会自动递增该数字。 我要从.Net传递一个表值参数,因为它随时有大约100或更多行的数据正在传递,并且我不想杀死该应用程序,破坏网络或SQL Server。 这是我的存储过程 我希望这会为我带来一些帮助,就像我对此进行测试时一样 这就是我回来的 (影响1行) (影响1行) (影响1行) (

  • 问题内容: 我在Heroku上托管了一个项目,想更改表的自动增量起始值。我在本地使用SQLite3,而Heroku使用PostgreSQL这是我在迁移中所拥有的: 迁移在本地运行,但SQLite似乎只是忽略更改,尽管它在Heroku上有效。我究竟做错了什么? 问题答案: 老实说,听起来这并不属于迁移。但是,您可以将以下内容添加到初始化程序中,以使其成为方便的基类方法以作为任务的一部分进行调用: 然

  • 问题内容: 使用Postgres,我试图用SQL自动编号主键。但是,这给了我一个错误。 错误: 知道为什么吗? 问题答案: Postgres 10或更高版本 列(请参见下文)保持不变。但是考虑一个 专栏。Postgres10实现了此标准SQL功能。 手册中的基本语法和信息。 __用列 创建 表 将 列 添加 到现有表 表可能填充也可能不填充行。 同时使它成为PK(表还不能拥有PK): 有关的: 如

  • 问题内容: 我正在尝试对现有表进行更改,并且在尝试保存时出现此错误: 不允许保存更改。您所做的更改要求删除并重新创建下表。您已经对无法重新创建的表进行了更改,或者启用了“防止保存需要重新创建该表的更改”选项。 我在数据库中只有一个数据条目-删除此内容即可解决问题,还是我必须按照错误提示重新创建表?(这是在SQL-Server 2008 R2上) 问题答案: 以下操作可能需要重新创建表: 在表格中间

  • 问题内容: 我正在尝试在mysql数据库中创建一列,该列自动递增1但从0-Z开始然后滚动。 例如000、001、002,…,009、00A,00B,…,00Z,010,…,0ZZ,…,100。 我想让数据库通过自动递增字段创建列。 我的想法是: 为从0到36的每个字符创建一列,然后将行N(其中N是最低有效数字)自动递增1。然后在每列上添加触发器,以在第N列达到36时向N-1列添加1 。 创建一个包