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

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

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

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

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

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

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

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

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

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

mysql中是不允许多主键的。但是,我们的主键确实可以有多个字段。可以先删除老的主键,再新增两个字段的主键。

phpMyAdmin是一个用PHP编写的软件工具,可以通过web方式控制和 *** 作MySQL数据库。通过phpMyAdmin可以完全对数据库进行 *** 作,例如建立、复制和删除数据等等。

主键和外键的区别1、主键是唯一标识一条记录,不能有重复,不允许为空;而外键可以重复,可以是空值。2、主键是用来保持数据完整性,外键是用来建立与其他表联系用的。

在我看来,这种设计,是为了保证,在各种数据库上面,都兼容.

因为对于 自增ID 的处理。各个厂商的实现方式都不一样

例如

SQL Server 是 IDENTITY 实现自增

Oracle 是 SEQUENCE + 触发器 实现自增

MySQL 是 AUTO_INCREMENT 实现自增

对于一家软件公司来说,如果他的产品,仅仅只能运行在 SQL Server 数据库上。

那么如果客户已经购买了 Oracle , 你要客户购买你的软件,然后再买套 SQL Server。

是不现实的。

如果你的设计中,过分的使用了数据库的特性,那么,对于你的产品。

比如 For SQL Server 版的 与 For Oracle 版的。

差异的地方,就很多,代码修改量也大。出错率也高。

比如某个功能 SQL Server 上面运行正常。

但是 Oracle 上面出错了。

结果很可能就是

SQL Server 里面的 IDENTITY 处理正常。

很可能 Oracle 那里,触发器 或者 SEQUENCE 忘记创建, 或者创建失败了。最后导致错误。

但是

每个表字段ID不设置为主键 建立一个TableID 有个2个字段 TableName , ID

这种方式,对所有的 数据库, 都支持。

不需要特别的设定。

我的印象中,好像 Java 开发中,使用的 Hibernate 里面, 就是这么设定的。

有个表专门存储 表名 与 ID 的。

而且 Hibernate 有它特有的处理机制的。

如果非常频繁的插入 *** 作。比如现在 A 表的 ID 是 100

然后同一时刻,插入了 20条记录

那么 处理完毕后, A表的 ID 直接由 100 变为 120

而不是 从 100 开始,检索20次,更新 20次, 更新到 120。

这样也没有性能方面上的问题。


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

原文地址: http://outofmemory.cn/tougao/11357020.html

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

发表评论

登录后才能评论

评论列表(0条)

保存