Mysql完整性约束

1. NOT NULL

非空约束,指定某列不能为空;

设置严格模式:

  不支持对not null字段插入null值
  不支持对自增长字段插入null
  不支持text字段有默认值
直接在mysql中生效(重启失效):
mysql>set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; 
配置文件添加(永久有效):
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
默认值设置语句:

default 默认值 

2. UNIQUE

唯一约束,不能重复,指定某列或者几列组合不能重复,但是null能写入多次     
联合唯一:

语法:unique(ip,port),表示两个行     数据对应的ip和port不能完全相同。

3. PRIMARY KEY

主键,指定该列的值可以唯一地标识该列记录;
第一个被定义为非空+唯一的那一列会被定义为这张表的主键;

一张表只能定义一个主键;
可以通过primary key定义;
联合主键:primary key(ip,port),表示两个行数据对应的ip和port不能完全相同。(系统会在所定义的两个数据后面加上默认值  ’’ -–> > 一个空的字符串)

4. auto_increment

自增,只能对数字有效,自带非空约束;
至少是unique真的约束之后才能使用;

5. FOREIGN KEY

外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性

create table t1(
       id int primary key auto_increment,
       name char(12) not null,
       gender enum('male','female') default 'male',
       class_id int unsigned,
       foreign key(class_id) references class(cid) on update cascade on delete cascade
)                    
on delete cascade 尽量不用

Cascade -->级联

foreign key(自己的字段) references 外表(外表字段)

外表字段必须至少“唯一”的

 
 
 







原文地址:https://www.cnblogs.com/sewen-H/p/13211428.html