比如我创建这样一个表
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;
这样也是可以的,这里应该有一个注意,我刚开始的时候每次都没有修改都没有表明字段类型,总是报错,切忌要声明字段的类型.
分享到:
相关推荐
MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用AUTO_INCREMENT MySQL中...
主要介绍了python mysql自增字段AUTO_INCREMENT值的修改方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
mysql中的自增auto_increment功能相信每位phper都用过,本文就为大家分享一下mysql字段自增功能的具体查看及设置方法
当清空一个表的时候,重新插入数据,发现auto_increment属性的字段计数不是从1开始的时候,可以使用以下命令
像MySQL一样,将Mongoid id字段更改为Integer的宝石。 MongoDB文档中的想法: 注意! 这个宝石已经帮助超过了4年,并产生了超过一百万行,这是非常工作的意愿。 现在,Ruby China( )已更改为ActiveRecord以将...
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。通常的设置自增字段的方法:创建表格时添加: 代码如下:create table ...
a%b表⽰以a开头b结尾的任意长度的字符串 _(下横线) a_b表⽰以a开头b结尾的长度为3的任意字符, PRIMARY KEY UNIQUE NOT NULL AUTO_INCREMENT DEFAULT default_value PRIMARY KEY 与UNIQUE 数据库操作: show ...
gid INT PRIMARY KEY AUTO_INCREMENT COMMENT '设置主键自增', gname VARCHAR(200) COMMENT '列注释' ) COMMENT='\u8868\u6ce8\u91ca'; 2 修改现有列,加上解释 alter table test_data modify column test_desc ...
本文实例讲述了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法。分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO...
创建MySQL表需要使用CREATE TABLE语句,并指定表的名称以及各个字段的名称和数据类型。下面是一个示例,创建一个名为`users`的表,包含`id`、`username`和`password`字段: ```sql CREATE TABLE users ( id INT ...
MySQL表的字段如下所示: Field Type Null Key Default Extra id int unsigned NO PRI NULL auto_increment word varchar(50) NO NULL pronunciation varchar(100) YES NULL meaning varchar(500) NO NULL ...
自增长键 # 查看自增长键配置 ...新的自增值生成算法是:从auto_increment_offset(初始值)开始,以auto_increment_increment(步长)为步长,持续叠加,直到找到第一个大于X的值,作为新的自增值. 自增字段必
AUTO_INCREMENT关键词意味着每当有新记录被插入到表中时,"id"字段的值会自动增加。 请注意,每个数据库系统对SQL语法和数据类型都有自己的特定规则。上述例子是适用于MySQL的。在其他数据库系统中,可能会有所不同...
二、获取mysql表自增(Auto_increment)值 Auto_increment是表中的一个属性,只要把表的状态获取到,也就可以获取到那个自增值 SQL语句: show table status like “表名”; php代码实现 $get_table_status_sql = ...
引起MySQL不能创建自动增加的字段的原因是在MySQL5.0.2版本中的The Server SQL Mode 中新加了几种 sql_mode,并且在sql的my.ini文件中的sql-mode 默认增加了其中的二种,一个是STRICT_TRANS_TABLES,就是导致auto_...
id int auto_increment primary key, first_name varchar(16), last_name VARCHAR(16), id_card VARCHAR(18), information text ); -- 更改表结构 alter table user_index -- 创建一个first_name和last_name的...
最近有个朋友提到如何使用sql来删除一个字段中部分内容,于是就写了这篇文章,简单记过: 测试表如下: 代码如下: CREATE TABLE `t` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `domain` tinytext,...