Mysql中Identity 详细介绍

Mysql中Identity有以下几个方面的详细介绍:

一、Identity基本定义

Identity在Mysql中是一个非常重要的属性,用于表示一列的自增长特性。在创建一个表中的一个列时加上“Auto_Increment”参数,就可以将该列设为自增长列。例:

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

这里id列就是一个自增长列,每次插入一条新的数据时,该列会自动加1。

二、Identity用法

Identity有以下两个作用:

1、插入新数据时自动生成唯一标识

当插入新数据时,如果id列被设置为Identity,则Mysql会自动为该列生成一个唯一标识,从而避免两条记录具有相同的id值。例如:

INSERT INTO `test` (`name`) VALUES ('Tom');

此时Mysql会自动为新的记录生成一个唯一的id值。

2、在数据表中添加一列,并指定为自增长列

当在数据表中添加一列时,可以通过Identity设置该列为自增长列。例如:

ALTER TABLE `test` ADD `age` int(11) NOT NULL AUTO_INCREMENT AFTER `name`;

此时在数据表中添加了一个新的age列,并且该列被设定为自增长列。

三、Identity的示例

以下是两个Identity的示例:

示例1:创建一个带有自增长列的表

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在创建表的过程中,将id列设置为自增长列,每次插入新的数据时,id列会自动加1。

示例2:修改现有表中的列,在其中添加自增长属性

ALTER TABLE `test` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

在例2中,我们需要在现有的数据表中的id列中添加自增长属性,可以通过ALTER TABLE命令来实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql中Identity 详细介绍 - Python技术站

(1)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • mysql锁及锁出现总结

    转载请注明出处: 1.按锁粒度分类: 行锁:锁某行数据,锁粒度最小,并发度高;; 行锁是指加锁的时候锁住的是表的某一行或多行记录,多个事务访问同一张表时,只有被锁住的记录不能访问,其他的记录可正常访问; 行锁是对所有行级别锁的一个统称,比如下面说的记录锁、间隙锁、临键锁都是属于行锁 表锁:锁整张表,锁粒度最大,并发度低; 上锁的时候锁住的是整个表,当下一个事…

    MySQL 2023年4月13日
    00
  • 阿里巴巴 MySQL 数据库之 SQL 语句规约 (三)

    SQL 语句规约 强制部分 【强制】 不要使用 count(列名) 或 count(常量) 来替代 count(*),count(*) 是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和 非 NULL 无关。说明:count(*) 会统计值为 NULL 的行,而 count(列名) 不会统计此列为 NULL 值的行。 【强制】 coun…

    MySQL 2023年4月13日
    00
  • MySQL explain 和 profiling 详解

    MySQL explain 和 profiling 详解 mysql explain MySQL 的 EXPLAIN 是一个用于查询优化的工具,它可以显示 MySQL 数据库如何执行查询。它返回一组关于查询执行计划的信息,包括用到的索引,表的连接顺序以及 MySQL 使用的查询类型。下面是 EXPLAIN 返回的列及其含义: id id:查询中每个 SELE…

    MySQL 2023年4月8日
    00
  • MySQL数据库导出与导入及常见错误解决

    MySQL数据库导出与导入及常见错误解决 MySQL是一个常用的关系型数据库管理系统,在使用MySQL数据库时,有时需要进行数据库导入导出的操作。下面将详细讲解MySQL数据库导入导出的完整攻略,并列出常见的错误类型及解决方法。 导出数据库 1.使用命令行进入MySQL,输入以下命令创建要导出的数据库: CREATE DATABASE yourdatabas…

    MySQL 2023年5月18日
    00
  • 解析mysql中:单表distinct、多表group by查询去除重复记录

    很高兴为你讲解“解析mysql中:单表distinct、多表group by查询去除重复记录”的完整攻略。 什么是MySQL中的distinct? 在MySQL中,DISTINCT是一种用于从查询结果中删除重复项的选择器。它保留一个副本,并删除所有重复项。如果要在结果集中查找唯一的值,那么可以使用DISTINCT选择器。 在单表查询中,DISTINCT将会对…

    MySQL 2023年5月18日
    00
  • Ubuntu 16.04 LAMP server 指南 – 配置 Apache2.4,PHP7,和MariaDB(而不是MySQL)

    翻译自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ 昨天在虚拟机里面安装ubuntu server ,然后配置php开发环境,参考了这篇文章,一次性把所有的东西都安装配置好了,所以想把这篇文章记录下来。希望能够帮助到初学…

    MySQL 2023年4月13日
    00
  • centos7.2_x64安装mysql.tar.gz

    1.解压 tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz 2.把解压好的文件移动到/usr/local/mysql 下 cp -r mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql 3.添加系统mysql组和mysql用户:执行命令:groupadd mysql和use…

    MySQL 2023年4月16日
    00
  • 解决Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)的方法

    当我们使用MySQL进行操作时,有时候会因为权限问题出现:Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)的错误。这种错误提示通常是因为MySQL无法验证我们所使用的用户或密码。下面是解决该问题的方法: 1.检查用户名和密码是否正确 …

    MySQL 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部