1、打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。
2、在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。
3、如图,在最后一列右击选择主键,即可将该字段设置为主键,也可以直接点击鼠标左键,可以快速添加和取消主键。
4、设置完主键之后,可以看到一把锁的标志,并且有一个1字,因为一个表可以给多个字段添加主键,则为联合主键,这样就显示为主键1,主键2等。
5、主键设置完成之后,还没有自增,选择id字段之后,在下方,如图,勾选自动递增,这样id在每次插入记录之后都会自增一个值。
6、设置完成主键和自增之后,点击保存,关闭当前窗口,然后选择表名右击选择对象信息。
7、在DLL页面中,可以看到刚刚添加的主键和自增的DLL语句,这里就是创建表的DLL语句。
8、上面有提到联合主键,其实一个表可以给多个字段设置主键,这样可以组成联合主键,对于特定的业务,联合主键也是必须的。
主键约束:唯一,不重复,不能为空 primary key
一个表中有且只有一个主键约束
1.创建表的同时创建主键约束
格式一:
create table 表名(
列名1 数据类型 primary key,
列名2 数据类型
)
主键约束名字的写法: PK_列名
格式二:
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字 primary key(列名1)
)
格式三:
create table 表名(
列名1 数据类型,
列名2 数据类型,
primary key(列名1)
)
2.针对已经存在的表,添加主键约束
格式一:
alter table 表名 modify 列名 数据类型 primary key;
格式二:
alter table 表名 add primary key(列名)
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名)
3.删除主键约束
格式:alter table 表名 drop primary key
1.主键语法①创建时:create table sc (
studentnoint,
courseidint,
scoreint,
primary key (studentno) )
②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名)
前提是原先没有设置主键。
2.外键语法
①创建时:create table sc (
studentnoint,
courseidint,
scoreint,
foreign key (courseid) )
②修改时:
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列]
3.使用组合主键
如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式
①创建时:create table sc (
studentnoint,
courseidint,
scoreint,
primary key (studentno,courseid) )
②修改时:alter table tb_name add primary key (字段1,字段2,字段3)
前提是原来表中没有设置主键,若原先已有主键则会报错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)