MySQL表怎么创造自增字段
发布时间:2021-12-17 10:27:38 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了MySQL表怎么创建自增字段的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 注:如果使用新的自增互斥方式,对于replication应该避免使
本篇内容介绍了“MySQL表怎么创建自增字段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 注:如果使用新的自增互斥方式,对于replication应该避免使用INSERT ... ON DUPLICATE KEY UPDATE语句。 设置新自增互斥方式:通过配置选项:innodb_autoinc_lock_mode:调整锁策略: innodb_autoinc_lock_mode = 0 (“traditional” lock mode:全部使用表锁) innodb_autoinc_lock_mode = 1 (默认)(“consecutive” lock mode:可预判行数时使用新方式,不可时使用表锁) innodb_autoinc_lock_mode = 2 (“interleaved” lock mode:全部使用新方式,不安全,不适合replication) ##创建自增字段 方法1、创建: mysql> create table c(id int auto_increment,name varchar(20),primary key(id)); Query OK, 0 rows affected (0.52 sec) mysql> desc c; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 2 rows in set (0.03 sec) 方法2、修改: mysql> create table cc (id int,name varchar(20)); Query OK, 0 rows affected (0.42 sec) mysql> alter table cc change id id int primary key auto_increment; Query OK, 0 rows affected (1.12 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc cc; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 2 rows in set (0.11 sec) mysql> insert into cc(id,name) values(1,'a'),(NULL,'b'),(NULL,'c'),(5,'d'); mysql> select * from cc; +----+------+ | id | name | +----+------+ | 1 | a | | 2 | b | | 3 | c | | 5 | d | +----+------+ 4 rows in set (0.00 sec) 注:只有int类型且为primary key 才可以使用auto_increment. ##对存在记录的表的列修改为自增列 mysql> create table ccc (id int,name varchar(20)); Query OK, 0 rows affected (0.27 sec) mysql> insert into ccc(id,name) values(1,'a'),(NULL,'b'),(NULL,'c'),(5,'d'); Query OK, 4 rows affected (0.53 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select * from ccc; +------+------+ | id | name | +------+------+ | 1 | a | | NULL | b | | NULL | c | | 5 | d | +------+------+ 4 rows in set (0.00 sec) mysql> alter table ccc change id id int primary key auto_increment; Query OK, 4 rows affected (1.04 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> desc ccc; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 2 rows in set (0.01 sec) mysql> insert into ccc(id,name) values(1,'a'),(NULL,'b'),(NULL,'c'),(5,'d'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' mysql> insert into ccc(id,name) values(6,'aa'),(NULL,'ab'),(NULL,'ac'),(10,'ad') ; Query OK, 4 rows affected (0.07 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select * from ccc; +----+------+ | id | name | +----+------+ | 1 | a | | 2 | b | | 3 | c | | 5 | d | | 6 | aa | | 7 | ab | | 8 | ac | | 10 | ad | +----+------+ 8 rows in set (0.00 sec) mysql> “MySQL表怎么创建自增字段”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章! (编辑:临夏站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐