精华内容
下载资源
问答
  • 一张表可以多少个主键

    万次阅读 多人点赞 2015-10-21 10:20:28
    1、数据库的每张表只能有一个主键,不可能多个主键。 2、所谓的一张表多个主键,我们称之为联合主键。  注:联合主键:就是用多个字段一起作为一张表主键。 3、主键主键的作用是保证数据的唯一性和完整性...

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

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

    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]
    )
     
    
    通过以上两种方式就解决了联合主键的问题。



    展开全文
  • 1、数据库的每张表只能有一个主键,不可能多个主键。 2、所谓的一张表多个主键,我们称之为联合主键。  注:联合主键:就是用多个字段一起作为一张表主键。 3、主键主键的作用是保证数据的唯一性和完整性...

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

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

    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]
    )
     
    通过以上两种方式就解决了联合主键的问题。

    --------------------- 本文来自 牟鹏 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/for12/article/details/49300843?utm_source=copy

    展开全文
  • SQL中的每一张表都必须设有主键

    千次阅读 2017-09-27 14:45:20
    SQL中的每一张表都必须设有主键吗 请问各位朋友 SQL中的每一张表都必须设有主键吗? 不设主键行不行?会造成什么问题吗? 非常感谢! nishishui001 | 浏览 11683 次 问题未开放回答 推荐于2016-05...

    SQL中的每一张表都必须设有主键吗

    请问各位朋友 SQL中的每一张表都必须设有主键吗?
    不设主键行不行?会造成什么问题吗?
    非常感谢!
    nishishui001  |  浏览 11683 次   问题未开放回答
    推荐于2016-05-26 07:17:03 最佳答案
    很明显不是必须设主键的

    主键的解释如下:

    主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
    在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。
    主关键字是一种唯一关键字,表定义的一部分。
    一个表不能有多个主关键字,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义
    princeeey | 2017-8-21 10:45
    可以不要的。没有主键就可以有重复记录了,方便恢复记录。一旦有了主键,必须主键列无重复值。 回复
    耕耘者1294480 | 2017-4-28 17:04
    把概念往这一放有什么用? 回复

    twvampire 

    采纳率:78% 来自团队:数据库讨论 擅长: 数据库DB 烦恼 资源共享 电影

    其他回答

    当然不一定咯。。
    设置不设置主键嘛。。。要看你的业务或者需求来说。。。
    如果你就是简单的对单表操作的话,实在没有必要。
    对多张没有关联的表操作的话,不设置也没有什么影响
    主键只是说对一种表和表关系的关联而已,还有就是在建主键的时候会自动添加个索引,某些情况下可以增加查询速度
     本回答被提问者采纳
    水中の鱼儿泪    |  推荐于2016-11-16 05:10:53
    评论 
    44  0
    可以没有。
    也可以有的。 一个表可以有一个主键,理论是这样,也可以有多个。主键可以保证字段值的唯一性和非空属性,相当于unique,不过unique不约束表的null,而且设置主键,在其他表可以设置这个主键的外键,这样就会存在约束(主键对外键的约束),修改外键,必须先修改主键,而且两个表字段(主键,外键)的值是相等的。
    冰封少尉    |  发布于2008-01-04 10:00
    评论 
    3  5
    如果你建立的表是有关联的话 那建议就是最好要设有主键
    展开全文
  • 如何给一个数据库添加主键

    千次阅读 2020-12-03 09:46:06
    一张表有只能有一个主键主键具有唯一性。) CREATE TABLE tb ( id INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(20) ) 2.在创建的时候在所有字段后面使用primary key(主键字段列表)来创建主键(如果多...

    要想给数据库表格增加主键,当然这分为两种情况。
    1你还没建立表格。这时候在create语句中添加即可。

    1.创建表的时候直接在表字段后,跟primary key关键字。(一张表有且只能有一个主键,主键具有唯一性。)
    CREATE TABLE tb
    (
    id INT IDENTITY(1,1) PRIMARY KEY,
    name VARCHAR(20)
    )

    2.在创建表的时候在所有字段后面使用primary key(主键字段列表)来创建主键(如果有多个字段作为主键被称为复合主键)

    *CREATE TABLE table_test(
    id INT NOT NULL,
    name VARCHAR(20) NOT NULL,
    address VARCHAR(20),
    PRIMARY KEY(id)
    );

    复合键这样设置:
    CREATE TABLE table_test(

    user_id INT NOT NULL,

    user_name VARCHAR(20) NOT NULL,

    user_address VARCHAR(20),

    PRIMARY KEY (user_id, user_name)

    );*

    3.在表创建好之后添加主键(表本身没有主键):
    alter table 表名 add primary key(字段列表)

    ALTER TABLE Employees
    ADD CONSTRAINT PK_EmployeesID PRIMARY KEY (EmployeeID)

    给表中没有的字段添加主键:
    ALTER TABLE (表名) ADD id INT(16) NOT NULL
    PRIMARY KEY AUTO_INCREMENT FIRST;

    注:主键必须非空,自增需要自己设置。如下:
    alter table(表名) modify id integer auto_increment

    我们光说了添加主键,那么删除主键怎么搞?
    alter (表名) DROP PRIMARY KEY

    数据库的东西一定要小心去操作,最好有个测试库自己练手,否则。。
    不说了,删库了。 我要跑路了。
    好了,就这些,如果喜欢,就多多关注吧。

    展开全文
  • 1、数据库的每张表只能有一个主键,不可能多个主键。 2、所谓的一张表多个主键,我们称之为联合主键。  注:联合主键:就是用多个字段一起作为一张表主键。 3、主键主键的作用是保证数据的...
  • 外键必须是另一个表主键

    千次阅读 2019-03-01 14:48:49
    不一定是主键,但必须是唯一性索引。 主键约束和唯一性约束都是唯一性索引。 FOREIGN KEY 约束 ...在外键引用中,当一个表的列被引用作为另一个表的主键值的列时,就在两之间创建了链接。这...
  • sql 关于一表个主键唯一性的约束

    万次阅读 2019-02-27 17:28:15
    1.对于一般的,我们只需设一个主键,防止重复,但是我们如果设置多个主键,是每个主键唯一性吗?还是多个主键组合起来具有唯一性 2.答案肯定是多个主键合起来具有唯一性,话说太多,现在上例子 3.例如,我建...
  • 外键必须是另一个表主键吗 ?

    千次阅读 2021-05-07 14:13:38
    比如学生在设计的时候一般可以用学号作为主键,也可设计一个ID字段,字段由数据库自动生成且唯一。那么对于班级,一个班级对应多个学生,这个时候对于班级和学生之间的外键就可以用学生的ID做外键。 如下所...
  • 如果你有一张表,你的主键是ID,然后由于测来测去的原因,你的ID不是从1开始连续的自增了。 终于有一天,使用这张表的某个系统要导入正式数据了,强迫症这时候就表现的明显了,浑身不自在, 这时候你就需要将这...
  • 刚开始时碰到这个需求时,在网上搜索了一下,发现都说不行,得先删除那主键列再重新增加或者先创建一个临时再把数据导过来,其实在MYSQL中是可以直接修改的。 修改ID字段为自增主键: alter table `test` change `...
  • 外键:是关联另外一个表主键一个键,保证两个之间的关联性索引:加快搜索效率 为什么主键只有一个?因为主键起始从实现角度来看是一个 唯一 非空 聚类索引, 聚类索引在一个表中只有一个,所以主键只有一个。...
  • PostgreSQL 查看结构、主键(多

    千次阅读 2018-10-11 15:17:16
    在网上查阅的资料都只能查出一张表一个主键(我的数据库有些是多个主键维护的),最后还是把不同的解决方法组合起来,解决了既能查看结构,也能查看多个主键。下面是SQL语句: SELECT  A.ordinal_position, ...
  • 增加主键的sql语句

    万次阅读 2018-01-08 11:46:43
    一张表有只能有一个主键主键具有唯一性。) 2.在创建的时候在所有字段后面使用primary key(主键字段列表)来创建主键(如果多个字段作为主键被称为复合主键) 3.在创建好之后添加主键...
  • 主键 外键 空间

    2014-05-26 15:55:54
    主键是能确定条记录的唯一标识,比如,条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这人的,其他都可能重复,所以,身份证号是主键
  • MySQL中索引、主键和唯一性的区别

    千次阅读 2017-07-26 11:23:33
    PRIMARY 主键: 就是 唯一 且 不能为空。 INDEX 索引: 普通的 UNIQUE 唯一索引: 不允许重复。...在一张表只能定义一个主键索引,使用关键字 PRIMARY KEY 来创建。 2.索引(INDEX ):
  • --只可惜只能复制一个主键 --改数据库名,table1 改为旧,table2改为新,今天研究了下怎么完全复制一个表,包括结构,主键和索引。下面是SQL, --注:两个一个库中。这段script可以重复跑 --SELECT * ...
  • 今天收到了一个新需求,需要更新一个有联合主键,一开始拿到数据库(DB2)的时候,打开发现它的key键有两个,再看唯一键却只有一条,但是一条记录里面对应了多个字段,于是我查了一下资料,发现原来所谓的一张表...
  • mysql table 主键

    2019-04-09 22:36:04
    一张表只能有一张主键? A2:对 Q3.一个主键只能是一列吗? A3:错 解释:一个表可以用两列做主键,只要这两列唯一就可以 常用: create table person( id int primary key auto_increment, ……); 不常用: ...
  • 最近学习一点数据库的基本知识,被一个问题困惑了许久:主键是唯一的索引,那么为何一个表可以创建多个主键呢? 其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在中创建了一个ID字段,自动增长,并设为...
  • sql server 主键

    千次阅读 2011-07-06 11:05:20
    我们在建立数据库的时候,需要为每张指定一个主键,所谓主键就是能够唯一标识中某一行的属性或属性组,一个表只能有一个主键,但可以多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新...
  •  每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要,甚至必需的部分。这确实是事实,主键是好的数据库设计的一部分。主键是数据库确保数据行在整张唯一性的保障。它是定位到一条记录并且确保不会...
  • 约束除了空属性,默认值,描述符以及零填充外(空属性,... 主键用于唯一的约束该字段里的数据,主键约束的字段不能为空,不能重复,一张表里最多只能有一个主键,但是可以定义复合主键来突破这个限制。 -- ...
  • 主键和外键什么区别呢

    千次阅读 2013-05-07 15:01:36
    主键是定义一个表中起主要作用的数据项,这些数据项的数据在中是唯一的,同时系统按主键建立索引。 外键是定义一个表中的某数据项的数据,要参照另一个表主键数据。既没有在另一个表主键数据中出现的数据...
  • MySQL主键的理解

    千次阅读 2016-01-20 16:14:18
    KEY”,主键不能重复,一个表只能有一个主键。 Mysql中规定自增列必须为主键,在插入时,如果自动增长列没有输入值,则插入的值为自动增长后的值;如果输入的值为0或者null,则插入的值也为自动增长后的值;如果...
  • mysql多统一主键策略

    千次阅读 2015-01-21 18:19:31
    在研究数据库分表(sharding)时,来自于统一主的分表主要使用统一主键策略。 ·如果使用uuid,可以很方便的解决这个问题,但是uuid是字符串型,并且也非常长,缺点可想而知。...·使用另一个Sequence维护id。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,028
精华内容 22,811
热门标签
关键字:

一张表只能有一个主键