mysql 中如何给已存在的表中字段增设置主键?

mysql 中如何给已存在的表中字段增设置主键?,第1张

1、打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。

2、在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。

3、如图,在最后一列右击选择主键,即可将该字段设置为主键,也可以直接点击鼠标左键,可以快速添加和取消主键。

4、设置完主键之后,可以看到一把锁的标志,并且有一个1字,因为一个表可以给多个字段添加主键,则为联合主键,这样就显示为主键1,主键2等。

5、主键设置完成之后,还没有自增,选择id字段之后,在下方,如图,勾选自动递增,这样id在每次插入记录之后都会自增一个值。

6、设置完成主键和自增之后,点击保存,关闭当前窗口,然后选择表名右击选择对象信息。

7、在DLL页面中,可以看到刚刚添加的主键和自增的DLL语句,这里就是创建表的DLL语句。

8、上面有提到联合主键,其实一个表可以给多个字段设置主键,这样可以组成联合主键,对于特定的业务,联合主键也是必须的。

主键只能有一个。

但是,如果你想用多个‘唯一索引’(unique index),是可以有多个的。

主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

所谓的一张表多个主键,我们称之为联合主键。

可以由多个列形成联合主键,但是主键只能有一个

courseidint,

scoreint,primarykey(studentno) )

②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名)

前提是原先没有设置主键。

2.外键语法①创建时:createtablesc (studentnoint,

courseidint,

scoreint,foreignkey(courseid) )②修改时:ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列]

3.使用组合主键

如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式①创建时:createtablesc (studentnoint,

courseidint,

scoreint,primarykey(studentno,courseid) )

②修改时:alter table tb_name add primary key (字段1,字段2,字段3)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11638139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存