比如我创建这样一个表
CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );
我要为peopleid添加一个auto_increment 让他自动整长,开始mysql总是报1075错误;于是查了一下关于mysql 1075的错误,
错误:1075 SQLSTATE: 42000 (ER_WRONG_AUTO_KEY)
消息:不正确的表定义,只能有1个auto列,而且必须将其定义为 键。
这是才明白 原来需要先添加一个主键
alter table people add primary key (peopleid);
alter table people change peopleid peopleid smallint auto_increment;
这样就成功了
那么,如果我们不添加主键呢?? 是不是就不可以了,当然不是
如果没有主键的话,我们这样也可以
alter table people change peopleid peopleid smallint auto_increment unique;
这样也是可以的,这里应该有一个注意,我刚开始的时候每次都没有修改都没有表明字段类型,总是报错,切忌要声明字段的类型.
分享到:
相关推荐
- **初始值设置**:可以通过`ALTER TABLE`语句来更改`AUTO_INCREMENT`字段的起始值。 - **多线程安全**:MySQL在处理多个并发插入操作时,能够保证`AUTO_INCREMENT`字段值的唯一性和连续性。 - **自动递增字段类型**...
在MySQL中,AUTO_INCREMENT是用来指定一个字段为自动增长的字段,通常用于设置主键(primary key)。当向表中插入新记录时,无需手动指定这个字段的值,MySQL会自动为该字段生成一个唯一的递增值。 在Python中,...
MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用AUTO_INCREMENT MySQL中...
在MySQL数据库中,`auto_increment` 是一个非常重要的特性,它允许系统自动为新插入的行生成唯一的标识符,通常用于主键字段。这个特性在处理大量数据时尤其有用,因为它消除了手动分配唯一ID的需求。本文将详细介绍...
要修改这些设置,可以使用`SET`语句,比如`SET auto_increment_increment=10`将自增步长设置为10,而`SET auto_increment_offset=2`将初始值设定为2。请注意,如果`auto_increment_offset`的值大于`auto_increment_...
在MySQL数据库中,`auto_increment` 是一个非常重要的特性,它允许在插入新记录时自动为某个整数字段(通常是主键)生成唯一的递增值。当你清空一个具有`auto_increment`字段的表,然后重新插入数据时,可能会发现这...
MySQL中的auto_increment是一种非常实用的属性,用于为表中的记录自动生成唯一的ID。这通常用于主键字段,确保每条记录都可以通过一个唯一的标识符进行区分。然而,auto_increment在处理记录删除、数据库重启以及...
标题“blog_auto_increment”暗示了我们讨论的主题与数据库中的自动递增字段有关,这通常用于在插入新记录时自动生成唯一的标识符。在数据库管理中,自动递增(Auto Increment)是一个非常重要的概念,尤其在关系型...
在MySQL数据库中,自增字段(AUTO_INCREMENT)是一种常见的特性,用于在插入新记录时自动为该字段生成唯一的序列编号。这个字段通常用于主键,确保每个记录的唯一性。以下是对MySQL自增字段相关知识点的详细说明: ...
例如,在创建用户信息表 Userinfo 时,我们可以将 User_ID 字段设置为 auto_increment,以便在插入数据时自动增长: ```sql CREATE TABLE UserInfo ( User_ID int NOT NULL PRIMARY KEY AUTO_INCREMENT, Name ...
像MySQL一样,将Mongoid id字段更改为Integer的宝石。 MongoDB文档中的想法: 注意! 这个宝石已经帮助超过了4年,并产生了超过一百万行,这是非常工作的意愿。 现在,Ruby China( )已更改为ActiveRecord以将...
在MySQL中,默认情况下,`AUTO_INCREMENT`字段的初始值是1,写入0会被解释为NULL并跳过。为了使自增字段从0开始,需要修改SQL模式。可以使用以下命令: ``` SET sql_mode='NO_AUTO_VALUE_ON_ZERO'; ``` 但是,...
MySQL 表中只能有一个 AUTO_INCREMENT 字段,而且这个字段必须被定义为键。 除了字段的约束,MySQL 也允许表级的约束,比如主键和外键、索引和惟一约束。这些约束置于 CREATE TABLE 命令的字段定义的后面。
要重置自增字段的起始值,可以在创建表时使用`AUTO_INCREMENT=n`选项,或者使用`ALTER TABLE table_name AUTO_INCREMENT=n`命令。例如,如果你想要自增字段从10开始,你可以执行`ALTER TABLE table_name AUTO_...
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。通常的设置自增字段的方法:创建表格时添加: 代码如下:create table ...