Unique约束

摘要:
一个表只能有一个主键约束。主键可以是单个字段,并且它的所有字段都不是NULL。一个表可以有多个“唯一”约束,“唯一”字段可以为NULL。不同之处在于表只能有一个主键约束。主键的所有字段都不为空。默认情况下,主键约束和唯一约束将成为索引。当主键和唯一具有多个字段时,即where语句中的条件必须具有主键的第一个字段或唯一字段。

主外键 Unique约束  

2010-09-06 13:50:58|  分类: 默认分类|字号 订阅

 
 

                  处理数据需要主外键处理,找下说明。     

     

            1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。
           2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL。
           3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束;主键所有字段都是not null,unique可以是null。相同点在于都能保证唯一性。
           4.主键、Unique与索引:主键约束与Unique约束默认会成为索引。当主键和Unique有多个字段时,有索引前缀性问题,即where语句中的条件必须有主键或者unique的第一个字段,否则不会使用索引。
          5. 外键与主键、Unique:外键必须为另外一张表(父表)的主键或者唯一索引。如果要添加记录,而父表中没有则报错。反之,如果要删除父表中的记录,而子表中有记录,也会报错。但是如果在创建外键约束时,如果使用on delete cascade,则删除父表中数据时,不报错而直接把子表关联的数据删除。
           如果要删除父表,则需要加上cascade constraints,此时子表的foreign key被去除,表中记录保持不变。

免责声明:文章转载自《Unique约束》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SparkSQL构建用户画像Linux中管道命令的用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ES入门 (7) 语法(5)DQL(2)关键字精确查询/多关键字精确查询/指定查询字段/过滤字段

5 关键字精确查询 term 查询,精确的关键词匹配查询,不对查询条件进行分词。 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search   服务器响应结果: 6 多关键字精确查询 terms 查询和 term 查询一样,但它允许你指定多值进行匹配。 如果这个字段包含了指...

转:Oracle11g面向开发人员的重要新特性:Pivot 和 Unpivot

  Pivot 和 Unpivot使用简单的 SQL 以电子表格类型的交叉表报表显示任何关系表中的信息,并将交叉表中的所有数据存储到关系表中。Pivot如您所知,关系表是表格化的,即,它们以列-值对的形式出现。假设一个表名为 CUSTOMERS。 SQL> desc customersName                           ...

kudu 知识点学习(一)

Apache Kudu的基本思想、架构和与Impala实践 Apache Kudu是一个为了Hadoop系统环境而打造的列存储管理器,与一般的Hadoop生态环境中的其他应用一样,具有能在通用硬件上运行、水平扩展性佳和支持高可用性操作等功能。 在Kudu出现之前,Hadoop生态环境中的储存主要依赖HDFS和HBase,追求高吞吐批处理的用例中使用HDFS...

【MySQL】MySQL中的锁机制

MySQL锁机制起步 锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制。MySQL中为了保证数据访问的一致性与有效性等功能,实现了锁机制,MySQL中的锁是在服务器层或者存储引擎层实现的。 行锁与表锁 首先我们来了解行锁与表锁的基本概念,从名字中我们就可以了解:表锁就是对整张表进行加锁,而行锁则是锁定某行、某几行数据或者行之间的间隙。 各引擎对锁...

mysql5.7 column cannot be null

背景 独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null 问题解决 最快速的方法就是直接询问研发,告知是DB问题,因为mysql从哪个版本开始默认的时间这块有改动,需要修改配置;MySQL升级后,在执行sql语句 ins...

Linq to sql 有什么办法可以实现消除列重复?

比如数据库里有一表,有两个字段:ID User1 小白2 小红3 小白 过滤User列为小白的重复项后,我想要得到:ID User1 小白2 小红 如果写db.linq.customer.Distinct<customer>();这样只能是每行全部匹配过滤,请问我应该怎么做? 自定义比较运算符: 1 //自定义比较符 2 public...