mysql设置自动递增_《MySQL数据库》约束条件和自增长序列
一、约束(constraint)
约束就是在表上强制执行的一种校验规则,当执行DML操作时,数据必须符合这些规则,如果不符合,将无法执行。
约束的全称:约束条件,也称之为完整性约束条件。可以保证表中数据的完整性,保证数据之间的商业逻辑。
约束条件包括:
1)非空约束 (not null),简称NN
2)唯一性约束(unique),简称UK
3)主键约束(primary),简称PK
4)外键约束(foreign key),简称FK
5)检查约束(check),简称CK
1、非空约束 (not null)
非空约束用于确保字段值不为null。默认情况下任何列都允许null值,但是业务逻辑可以会要求某些列不能去null值,因此使用非空约束。
建表时设置:
create
建表后设置非空约束(ps:前提表中相应字段不能有null值)
alter
取消非空约束
alter
2、唯一性约束(unique)
用于保证字段或者字段的组合不出现重复值,但是允许为null值
建表时设置
create
建表后设置
alter
查看表中的唯一性约束名称
show
删除唯一性约束
drop
3、主键约束(primary)
主键约束在功能上讲,相当于非空约束和唯一性约束的组合。主键字段可以是单字段也可以是字段组合,即在主键约束下的字段不允许有null值,也不允许出现重复值。主键可以用来在表中唯一的确定一行记录。一个表中只允许建立一个主键,其他约束条件没有个数限制。
主键选取的原则
1)主键应是对系统无意义的数据,如序号
2)永远也不要更新主键,让主键除了用于唯一标识一行记录之外,再无其他用途
3)主键不应包含动态变化的数据,如时间戳
4)主键应自动生成,不要人为干预,以免使它带有除了唯一标识一行以外的意义
5)主键尽量建立在单列上
建表时创建
create
建表后创建
alter table tableName modify colName Type primary key;
alter table tableName add constraint constraintName primary key(colName);
删除主键
alter table tableName drop primary key;
4、外键约束(foreign key)
外键约束条件定义在两张表的字段或一张表的两个字段上,用于保证相关两个字段的关系。即字段A如果设置外键约束,那么字段A的值
必须要依赖于字段B里已经存在的值,但是可以为null。而字段B要求是表中的主键约束。
字段A所在的表我们称之为从表,字段B所在的表称之为主表。如果主表中的一个值被从表依赖时,此时主表的该记录不允许被删除。
外键约束会降低数据库的性能:
如果在设置外键约束的表上频繁的进行
建表时设置
create
建表后设置
alter
删除外键约束
alter
5、检查约束(check)
检查约束条件用来强制在字段上的每个值都要满足检查约束的条件。
mysql的检查约束注意事项:
1) 写法:check(条件) 。mysql在语法上通过,但是在约束条件上没有效果。其他数据库如oracle有效
2) 如果是集合性质的条件,如 gender 必须('f','m')中的某一个值,可以使用枚举来替代检查约束写法:enum('f','m')
建表时设置:
create
建表后设置:
alter
二、mysql的自增长"序列"
1、序列的概念
序列(sequence)是一种用来生成唯一数字值的数据库对象。序列的值通常是按递增或递减顺序自动生成,用于自动产生表中主键的值,是一种高效的获取唯一键值的途径。通常为主键服务,是一组有序的整数值,如1,2,3,4,5,.......................
2.mysql特点
mysql不支持序列机制,但是mysql的auto_increment可以达到与序列机制一样的效果。我们称之为自增长序列。
1
用法如下:
建表时设置
3、函数:last_insert_id();
作用:获取序列最后一次的值。
mysql设置自动递增_《MySQL数据库》约束条件和自增长序列相关推荐
- mysql 序列自增长 恢复到1_大数据教程分享MySQL数据库约束条件和自增长序列
大数据教程分享MySQL数据库约束条件和自增长序列,一.约束(constraint) 约束就是在表上强制执行的一种校验规则,当执行DML操作时,数据必须符合这些规则,如果不符合,将无法执行. 约束的全 ...
- mysql 修改自动递增值_MySql数据库自动递增值问题
?Create TABLE test(idINT UNSIGNEDNOT NULL PrimaRY KEY AUTO_INCREMENT,usernameVARCHAR(15)NOT NULL)AUT ...
- mysql设置token有效期_记住我 token保存到数据库
记住我 token保存到数据库 这里使用jpa+mysql org.springframework.boot spring-boot-starter-data-jpa mysql mysql-conn ...
- 【MySQL 第17章_其他数据库日志】
第17章_其他数据库日志 1.MySQL支持的日志 1.1日志类型 1.2日志的弊端 2.慢查询日志(slow query log) 3.1问题场景 3.2 查看当前状态 3.3 启动日志 3.4 查 ...
- 如何让mysql的自动递增的字段重新从1开始呢?(
数据库表自动递增字段在用过一段时间后清空,还是继续从清空后的自动编号开始. 如何才能让这个字段自动从1开始自动递增呢? 下面两个方法偶都试过,很好用: 1 清空所有数据,将自增去掉,存盘,在加上自增, ...
- mysql设置success信息_【原创】MySQL Cluster安装部署(Success)
参考:http://www.cnblogs.com/zhoulf/archive/2013/01/30/2883207.html 安装要求 安装环境:centos6.3(X64) 软件名称 :mysq ...
- mysql设置负载均衡_如何设置mysql的负载均衡?
MySQL作为中小型办公室都会选择的数据库系统,在安装前工作人员需要知道mysql安装前所必需的环境,今天跟大家分享下mysql的负载均衡问题. 本文将介绍MySQL的负载均衡问题,包括环境介绍,操作 ...
- 改变mysql的数据编码格式_修改数据库编码格式(转)
MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:&g ...
- mysql 设置默认值_为什么 Flink 无法实时写入 MySQL?
作者:孙金城 摘要:本文为 Flink 生产环境应用中的疑问剖析,Flink 无法实时写入 MySQL 是初学者常见问题之一,由社区同学罗鹏程提出,Apache Flink PMC 孙金城(金竹)老师 ...
最新文章
- 使用trash-cli防止rm -rf 误删除带来的灾难(“事前”非“事后”)
- 解决ubuntu上ifconfig没有eth0/ens33且无法上网的问题
- SAP物料标准成本估算结果
- MapReduce Java API-多输入路径方式
- PPR data model
- linux快速安装mysql教程
- JAVA 图片压缩及png转jpg
- 美国计算机一年制,美国一年制硕士
- avr单片机c语言计算log,AVR单片机定时器初值计算公式与方法 - 单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)...
- web网关_配置手册
- 社群运营普遍存在的五个问题
- 关于typescript中的extends和infer以及用法
- Justinmind Prototyper中如何使用变量达到一些效果
- VL53L0X+stm32激光测距
- 微信扫码登陆在chrome浏览器失败
- 发现自己的长处,深入自己擅长的事情
- 十进制负数转换成二进制数的方法
- 求阶乘问题c语言编程,求阶乘问题
- 自己学习c++过程中写下的笔记,只做基础了解使用
- 【第三趴】uni-app页面搭建与路由配置(了解工程目录结构、学会搭建页面、配置路由并成功运行)