精华内容
下载资源
问答
  • 一个表可以有一个或多个主键
    千次阅读
    2021-01-19 07:53:15

    完全可以create tabletabCheck

    (

    check_idint not null,

    check_noint not null,

    startdatedatetime,

    enddatedatetime.......................CONSTRAINT [PK_tabCheck] PRIMARY KEY CLUSTERED (check_id,check_no) ON [PRIMARY]

    --上面這句一定要用到

    )

    check_id,check_no是这个表的联合主键

    一个表只允许有一个主键

    但一个主键可以允许由多个字段构成复合主键

    所以楼主的写法是不行的,用了多个主键

    冒牌的可以,由多个字段构成一个主键

    而一个表允许多个唯一键,所以如果仅仅是为了限制字段的记录不重复的话,可以用一个主键,多个唯一键的方式.--如果楼主是要 paper_name+author_id 构成复合主键

    create tablepaper (

    paper_namevarchar(50) not null,

    author_idchar(10) not null,constraint PK_paper primary key(paper_name,author_id) --复合主键

    )--如果楼主是要 paper_name 与 author_id 的值都不重复,则:

    create tablepaper (

    paper_namevarchar(50) not null primary key, --用主键做限制

    author_id char(10) not null constraint UQ_paper_author_id unique --用唯一键做限制

    )

    我们在create table时经常会碰到这样的语句,例如:CityNamenvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面:

    首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。

    语法是collate collation_name

    collation_name ::={windows_collation_name}|{sql_collation_name}

    参数collate_name是应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。

    Windows_collation_name 是 Windows 排序规则的排序规则名称。参见 Windows 排序规则名称。

    SQL_collation_name 是 SQL 排序规则的排序规则名称。参见 SQL 排序规则名称。

    下面简单介绍一下排序规则:

    什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server2000中,

    字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存

    储和比较字符所使用的规则。"

    在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。select * from::fn_helpcollations()

    排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。

    如:

    Chinese_PRC_CS_AI_WS

    前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

    排序规则的后半部份即后缀 含义:

    _BIN 二进制排序

    _CI(CS) 是否区分大小写,CI不区分,CS区分

    _AI(AS) 是否区分重音,AI不区分,AS区分

    _KI(KS) 是否区分假名类型,KI不区分,KS区分

    _WI(WS) 是否区分宽度 WI不区分,WS区分

    区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。

    区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,

    比较还将重音不同的字母视为不等。

    区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。

    区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

    更多相关内容
  • 一张表可以有多少个主键

    千次阅读 2021-01-19 05:33:29
    转自:http://blog.csdn.net/for12/article/details/49300843今天在共工作...1、数据库的每张只能有一个主键,不可能有多个主键。2、所谓的一张表多个主键,我们称之为联合主键。注:联合主键:就是用多个字段一起...

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

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

    doubt.gif

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

    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]

    )

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

    展开全文
  • 数据库主键,指的是一个或多列的组合,其值能唯一地标识中的每一行,通过它可强制的实体完整性;主键主要是用与其他的外键关联,以及本记录的修改与删除。数据库的单个数据中只能个主键。数据库主键,...

    数据库的单个数据表中只能有一个主键。数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性;主键主要是用与其他表的外键关联,以及本记录的修改与删除。

    4de34d12abcfac82c43c135eac5ca543.png

    数据库的单个数据表中只能有一个主键。

    数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用与其他表的外键关联,以及本记录的修改与删除。

    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]

    )

    推荐教程:《sql视频教程》

    展开全文
  • 数据库有多个主键

    千次阅读 2021-12-09 15:30:09
    数据库中的多个主键称为联合主键 sql 中一个表设置两个主键是 将两个字段联合起来设置为主键 一个表只能一个主键 1.只有id为主键时 2.id和name这2个列一起构成为联合主键时 甚至可以全部字段设置为主键 ...

    数据库表中的多个主键称为联合主键
    sql 中一个表设置两个主键是 将两个字段联合起来设置为主键 一个表只能有一个主键
    在这里插入图片描述
    1.只有id为主键时

    在这里插入图片描述
    在这里插入图片描述
    2.id和name这2个列一起构成为联合主键时
    在这里插入图片描述
    在这里插入图片描述

    甚至可以全部字段设置为主键

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • sql新建数据库,及添加多个主键

    千次阅读 2021-01-19 08:50:09
    create table tb_Modules(module_Id int identity(1,1) primary key, (自增)model_Name varchar(50) not null,page_Id int foreign key(page_Id) references tb_Page(page_Id)(设置外键))go此为创建(当然的时候...
  • 展开全部主键只有一个,但是可以设置...数据库的每张只能一个主键,不可能有多个主键。所谓的一张表多个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张的主键。主键的主键的作用是保证数据的...
  • Oracle报错:只能有一个主键。总结及解决方案。
  • 1、数据库的每张只能有一个主键,不可能有多个主键。 2、所谓的一张表多个主键,我们称之为联合主键。 注:联合主键:就是用多个字段一起作为一张的主键。 3、主键的主键的作用是保证数据的唯一性和完整性,...
  • 关于数据库一张表有个主键

    千次阅读 2021-09-15 22:20:55
    关系型数据库中,用户在建表时,只能一个主键,不可能有多个主键的,但时候我们碰到关系S和我们的关系C存在多对多的联系,在关系数据库中,多对多联系必须建立一个关系模式,而该模式的码是联系两端实体的码加上...
  • SELECT TF_SCHOOL_DORMITORY_INFO.*, tsi.STAFF_NAME “ceoName”, ts_staff_info.STAFF_NAME AS “houseMasterName” FROM ( SELECT * FROM ts_staff_info ) tsi right join TF_SCHOOL_DORMITORY_INFO ON tsi.STAFF...
  • 但是事情往往没有我们想象的那么简单,一张其实也是可以有多个主键。 如上图所示,其实说多个主键也不对,可以说是复合主键。意思为 这2个字段都不是唯一的,2个字段可以分别重复 复合主键指将两张关联起来,两...
  • sql 关于一表多个主键唯一性的约束

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

    万次阅读 2019-01-29 11:17:48
    user,身份证号码要唯一,手机号码,邮箱要唯一,实现方式: 结构不用动。一个主键Id 加索引实现  如图类型设置索引类型为Unique 唯一 选择栏位,命个名就行。索引方式btree 就好。ok啦~...
  • create table a( id varchar(20) not null primary key, name varchar(30) ); create table b( id varchar(20) not null primary key ); ...id varchar(20) not null primary key ...alter table b add constraint a_id ...
  • 1、mapper层里的方法上添加注解:实体类属性:cExperimentaltaskid(id)表字段:c_experimentaltaskid(主键id字段)@Options(useGeneratedKeys = true, keyProperty = "...)2、在第一个表添加成功后调用...
  • 外键必须是另一个表主键吗 ?

    千次阅读 2021-05-07 14:13:38
    那么对于班级,一个班级对应多个学生,这个时候对于班级和学生之间的外键就可以用学生的ID做外键。 如下所示: 学生(学号,学生ID, 姓名,班级号,成绩) 班级(班级号,班级名,学生ID) ...
  • 如何给一个数据库添加主键

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

    千次阅读 2019-03-14 13:53:00
    主键的作用: 1)保证实体的完整性; 2)加快数据库的操作速度 3)在中添加新记录时,数据库会自动检查新记录的主键值,不允许该值...2.数据查询效率(主键可以提高查询效率,当然合理的索引替代也可以) 这两...
  • 平时业务量比较大,一张HIVE里面的字段也比较,如何判断所select 的这几个字段是这张表的唯一主键,也就是,选取这几个主键可以唯一确定只有行数据 可以通过,select A,B,C from table group by A,B,C ...
  • 外键必须是另一个表主键

    千次阅读 2019-03-01 14:48:49
    不一定是主键,但必须是唯一性索引。 主键约束和唯一性约束都是唯一性索引。 FOREIGN KEY 约束 ...在外键引用中,当一个表的列被引用作为另一个表的主键值的列时,就在两之间创建了链接。这...
  • ![图片说明]...如图,3字段,但不没有主键,我希望查询出pid不等于1并且name不等于n2的记录,期望的结果如下: pid name value 1 n1 1 1 n3 1 2 n2 2 2 n4 3
  • 1、数据库的每张只能有一个主键,不可能有多个主键。 2、所谓的一张表多个主键,我们称之为联合主键。  注:联合主键:就是用多个字段一起作为一张的主键。 3、主键的主键的作用是保证数据的...
  • 因为中间表带属性,采用的映射方式 两实体类都使用 @OneToMany( mappedBy="workDateTime")   需求:因为中间使用两外键作为联合主键 ,如果需要对中间的属性进行修改, 1、一般做法 ...
  • 之间有一对多、多对多的关系,只要涉及到之间的关联们就会涉及到外键...kinds和user对多的关系,kinds的工种发生变化的话,那么user中牵扯到多个人的工种发生变化 user kinds   ...
  • 1.主键的定义 主关键字(primary key): 是中的一个或者多个字段,它的值用于唯一的标识中的某一条记录。 问题:一张有多个主键,不同主键之间是否可以重复? 答案:可以

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 485,467
精华内容 194,186
热门标签
关键字:

一个表可以有一个或多个主键