转自:http://blog.csdn.net/for12/article/details/49300843

今天在共工作,做老项目维护的时候无意中发现一张表居然有三个主键。吓死宝宝了,然后尝试着建表建主键,但是都不能成功。

难道是我写的有问题,最后通过查资料总终于解决了。

1、数据库的每张表只能有一个主键,不可能有多个主键。

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

注:联合主键:就是用多个字段一起作为一张表的主键。

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

下面聊聊怎么创建联合主键:

1、GUI中同时选中多列,点击设置为主键。

2、sql语句将多列设置为主键:

一种是在建表时就写出,语句如下:

Create Table 表名 (字段名1 Int Not Null,

字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

字段名3…………

字段名N………… )

另一种是在建表后更改,语句如下:

ALTER TABLE 表名 WITH NOCHECK ADD

CONSTRAINT [PK_表名] PRIMARY KEY  NONCLUSTERED

(

[字段名1],

[字段名2]

)

通过以上两种方式就解决了联合主键的问题。

mysql一张表有几个主键_一张表可以有多少个主键相关推荐

  1. wps透视表列总计移到顶部_数据透视表总计中的错误

    wps透视表列总计移到顶部 Pivot tables are a quick and easy way to summarize a table full of data, without fancy ...

  2. mysql 多个主码_数据库中几个基本概念 主码 外码

    [一 逻辑模型中的信息可以用三个概念来描述:(1) 实体(如果一个对象拥有许多特性和值,那么它可能是个实体)(2) 属性(如果一个对象拥有一个特性的值,那么它可能是属性) 主码 ,外码也可以称为主键, ...

  3. mysql删除表中的一列数据_在数据表中添加或删除一列

    注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容. 本页面是自动翻译的,可能包含语法错误或不准确之处. 我们的目的是使此内容能对你有所帮助. 可以在本页面底部告诉我们此信息是否对你有帮助吗? ...

  4. mysql中ak替换键_数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束...

    数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束 数据库:唯一性约束 所谓唯一性约束(unique constraint)不过是数据表内替代 ...

  5. sharding分表后主键_分库分表【Sharding-JDBC】入门与项目实战

    最近项目中不少表的数据量越来越大,并且导致了一些数据库的性能问题.因此想借助一些分库分表的中间件,实现自动化分库分表实现.调研下来,发现Sharding-JDBC目前成熟度最高并且应用最广的Java分 ...

  6. wps透视表列总计移到顶部_数据透视表运行总计百分比

    wps透视表列总计移到顶部 At the beginning of every month, I download the previous month's statistics for my web ...

  7. 什么是java程序的主类_什么是Java 应用程序的主类?

    问题阐述 在进行Java 应用程序开发时,为了使应用程序能够运行,这个应用程序必须要含有一个主类,请问什么是Java 应用程序的主类? 专家解答 Java 应用程序是由若干类和接口组成的,为了使Jav ...

  8. mysql查询第10到第20条记录_“取出数据表中第10条到第20条记录”的sql语句+selecttop用法...

    1.首先,select top用法: 参考问题 select top n * from和select * from的区别 select * from table -- 取所有数据,返回无序集合 sel ...

  9. mysql如何查看表拥有的键_如何查看表或列的所有外键?

    白板的微信 表:SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEF ...

  10. mysql多表查询取出最后的数据_数据库多表查询,如何取A表中最后一个数据在B表中进行查找?...

    A表中有id user_id B表中有id phone a.user_id = b.id 需求:现在要取a.user_id最新的一个数据然后在B表中查找phone,并给b.phone发送短信= =.. ...

最新文章

  1. 广东线上比赛过程集锦
  2. Android 利用addView 动态给Activity添加View组件
  3. 源码读不会,小白两行泪!
  4. 2019“编程的夏天”完美收官!这些00后点燃了这个盛夏
  5. java流与文件——正则表达式
  6. 【原】JavaScriptSerializer类的序列化和反序列化操作
  7. ecshop属性排序
  8. 第一阶段 PHP基础.函数
  9. 持久化存储与HTTP缓存
  10. linux 查看安装软件
  11. java交接文档_如何写好交接文档
  12. comsol5.6下载
  13. html如何改成花体英文字体,花体英文在线转换
  14. C#导出EXCEL没有网格线的解决方法
  15. 记录:MI 10 反复重启的原因之一
  16. 基于Pygame中Pygame模块的大战外星人
  17. CentOS 7 下的软件安装方法及策略
  18. python画钟表代码_Python技能操作5:用代码做个能挂墙上的大钟表
  19. esp8266烧录Html文件
  20. 【图像检测】手指指尖的图像采集与检测附matlab代码

热门文章

  1. 国家铁路局招聘面试题汇集
  2. 功能性测试方法和流程
  3. mysql execute stmt_execute_prepared_stmt()
  4. 我们所知道的压电材料参数及压电方程式ZJ-3型压电测试仪
  5. Scrum-Sprint关键会议的培训
  6. iphone出现android文件夹,为什么iPhone仍限制每个文件夹页面9个应用程序? | MOS86...
  7. Wagtail Usage guide:Wagtail 使用指南
  8. 关于开发板不断eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 eth0: link down的问题
  9. 使用 RGL 制作交互式 3D 散点图
  10. 各领域医疗机器人分析