字段属性--主键

字段属性

主键,唯一键和自增长

主键

主键:primary key,主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复:这种称之为主键

一张表里只能有最多一个主键

增加主键
SQL操作中有多种方式可以给表增加主键:大体可以分为三种
方案1:在创建表的时间,直接在字段之后,跟primary key关键字(主键本身不允许为空)

优点:非常直接;缺点:只能使用一个字段作为主键

方案2:在创建表的时候,在所有的字段之后,使用primary key(主键字段列表)来创建主键(如果有多个字段作为主键,可以是复合主键)


方案3:当表已经创建之后,再次额外追加主键,可以通过修改表字段属性,也可以直接追加。
Alter table 表名 add primary key (字段列表) ;

前提:表中字段对应的数据本身是独立的(不重复)

主键的约束
主键对应的字段中的数据不允许重复:一旦重复,数据操作失败(增和改)

主键冲突


更新主键 & 删除主键

没有办法更新主键:主键必须先删除,才能增加。
alter table 表名 drop primary key;


主键分类

在实际创建表的过程中,很少使用真实业务数据作为主键字段(业务主键,如学号,课程号);
大部分的时候是使用逻辑性的字段(字段没有业务含义,值是什么都没有关系),将这种字段主键称之为逻辑主键

时间: 2024-10-07 05:06:28

字段属性--主键的相关文章

Django数据库怎么给字段设置主键

id = models.IntegerField(primary_key = True) 附: null :缺省设置为false.通常不将其用于字符型字段上,比如CharField,TextField上.字符型字段如果没有值会返回空字符串. blank:该字段是否可以为空.如果为假,则必须有值 choices:一个用来选择值的2维元组.第一个值是实际存储的值,第二个用来方便进行选择.如SEX_CHOICES= ((‘F’,'Female’),(‘M’,'Male’),) core:db_colu

取得MSSQL表中字段及主键等属性SQL语法

SELECT c.NAME AS [Column Name], t.NAME AS [Data type], c.max_length AS [Max Length], c.precision, c.scale, c.is_nullable AS [Is Nullable], c.is_identity AS [Is Identity], ISNULL(i.is_primary_key, 0) [Primary Key], i.type_desc, OBJECT_SCHEMA_NAME(fk.o

INNODB自增主键的一些问题 vs mysql获得自增字段下一个值

今天发现 批量插入下,自增主键不连续了....... InnoDB AUTO_INCREMENT Lock Modes This section describes the behavior of AUTO_INCREMENT lock modes used to generate auto-increment values, and how each lock mode affects replication. Auto-increment lock modes are configured

MySQL数据库8(九)列属性之主键、自增长

主键 顾名思义,主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性 创建主键 随表创建 系统提供了两种增加主键的方式: 1.直接在需要当做主键的字段之后,增加primary key属性来确定主键 2.在所有字段之后增加primary key选项:primary key(字段信息) 表后增加 基本语法:alter table 表名 add primary key(字段); 查看主键 方案1: 查看表结构 方案2:查看表的创建语句 删除主键 基本语法:alter ta

mysql5.5基础 create table... 创建不可空、主键、自增长的字段

礼悟:    公恒学思合行悟,尊师重道存感恩.叶见寻根三返一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼养身心,诚劝且行且珍惜. 数据.数据,命根就在数据.操作数据库一定要谨慎小心.给最苦 这里的代码,看看就好,要有自己的判断.遇到抉择,要不耻上下问. mysql:5.5                     os:Windows7 x64 代码及效果 mysql> create table student( -> stdId int not null au

(19)ASP.NET Core EF创建模型(包含属性和排除属性、主键、生成的值)

1.什么是Fluent API? EF中内嵌的约定将POCO类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方法,这两种方法是用来配置EF在映射属性时绕开约定.Code first fluent API最常访问通过重写OnModelCreating方法在派生DbContext. 2.包含属性和排除属性 按照约定,数据模型中都包含一个getter和一个setter公共属性. 2.1包含属性 包含属性官网解释有点难以理解,我

数据库自增主键可能产生的问题

在MySQL中经常会配置自增长属性的字段作为主键,特别是使用InnoDB存储引擎,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,但是使用自增主键也可能会带来一些问题.   举个例子,使用自增主键对数据库做分库分表,可能出现一些诸如主键重复等的问题,或者在数据库导入的时候,可能会因为主键出现一些问题.主要业务表的主键应该配置一个合理的策略,尽量避免自增AUTO_INCREMENT. 针对主键自增可能产生的问题,下面这两篇文章有相关的讨论:     INNODB自增主键的一些

mysq数据库设计(主键与外键)

主键可以是真实实体的属性,但是常用的好的解决方案是,利用一个与实体信息不相关的属性,作为唯一标示(加个id字段)主键与业务逻辑不发生关系,只用来标示记录 可以在定义完字段后,再定义多列主键(组合主键) 例:primary key(id,name,age);(不是说3个字段都是主键,因为一个表只能有一个主键,可以是3个字段组合成的主键) 设计: 两个实体表内,存在相同的主键字段 如果记录的主键值等于另一个关系表内记录的主键则两天记录对应 1:1对应  数据库设计的时候(常用的信息和不常用的信息分开

数据库设计中主键问题

转自: http://www.jb51.net/article/40933.htm 数据库主键在数据库中占有重要地位.主键的选取策略决定了系统是否可靠.易用.高效.本文探讨了数据库设计过程当中常见的主键选取策略,并剖析了其做主键的优缺点,提出了相应的解决问题的方法 在基于关系型数据库设计时候,通常要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行记录的属性或属性组,一个表只能有一个主键,但可以有多个候选索引.因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删除.修改时不出现错误