复合主键sql
❶ 当表中的主键是复合主键时如何用sql语句向表中添加信息
一样,还是别违反主键的唯一约束就行了。复合主键顾名思意,组合的意思。所以只要2个字段的内容组合不重复就可以通过检测。例如A,A与A,B是不违反该复合主键约束的(仅以两个字段的复合主键为例)。
❷ 什么是sql中的复合主键
复合主键应该是一张表中,由几个字段来定的唯一性,因为某几列的组合就能唯一确立一条记录,因此他们的组合为一张表的主键。通常,一张表有一个主键字段,是唯一非空的。而复合主键是一张表由几个字段来定唯一性,即每条记录的col1和col2字段唯一。
❸ 如何在数据库表中建立复合主键(即多个字段同时作为
(即多个字段同时作为主键)主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。
建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
1.在数据库提供的GUI环境中建立(以SQL7为例)。
输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
例:
CREATE TABLE Student
(Son CHAR(12) PRIMARY KEY,
CREATE TABLE Course
(Con CHAR(4),
PRIMARY KEY (Con),
);
CREATE TABLE SC
(Sno CHAR(12),
Con CHAR(4),
PRIMARY KEY(Sno,Con),
FOREIGN KEY(Sno)REFERENCES Student(Sno),
FOREIGN KEY(Cno)REFERENCES Course(Cno));
❹ sql 联合主键和复合主键
复合主键 是指你表的主键含有一个以上的字段组成
联合主键是多个主键联合形成一个主键组合
❺ SQL里面怎么设置复合主键
CREATE TABLE [UserRole] (
a INT NOT NULL,
b INT NOT NULL, c INT NOT NULL,
PRIMARY KEY(a,b)
) ;
这是在查询分析器里运行的。
如果手工建表的话,只需按住Ctrl键同时选择两个字段就可以设置复合主键了。
❻ 在SQL中,什么是复合主键
所谓的复合主键 就是指你表的主键含有一个以上的字段组成
比如
create table test
(
name varchar(19),
id number,
value varchar(10),
primary key (name,id)
)
上面的name和id字段组合起来就是你test表的复合主键
它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性
一般情况下,主键的字段长度和字段数目要越少越好
❼ 怎么用sql语句在已有表上设置复合主键
例如:
已有一个表test_key,其中a1列为主键。
create table TEST_KEY
(
a1 VARCHAR2(3) not null,
a2 VARCHAR2(3),
b1 VARCHAR2(3),
b2 VARCHAR2(3)
);
alter table TEST_KEY
add constraint PK_TEST_KEY primary key (A1)
using index;
现在要将a2,b1也增加到主键中与原有的a1一起组成复合主键。语句如下:
alter table TEST_KEY
drop constraint PK_TEST_KEY cascade;
alter table TEST_KEY
add constraint PK_TEST_KEY primary key (A1, A2, B1)
using index;
这样就可以了。
❽ 怎么在已有表上设置复合主键(表中已有主键,还要在加几个主键)用sql语句
例如:
已有一个表test_key,其中a1列为主键。
create
table
TEST_KEY
(
a1
VARCHAR2(3)
not
null,
a2
VARCHAR2(3),
b1
VARCHAR2(3),
b2
VARCHAR2(3)
);
alter
table
TEST_KEY
add
constraint
PK_TEST_KEY
primary
key
(A1)
using
index;
现在要将a2,b1也增加到主键中与原有的a1一起组成复合主键。语句如下:
alter
table
TEST_KEY
drop
constraint
PK_TEST_KEY
cascade;
alter
table
TEST_KEY
add
constraint
PK_TEST_KEY
primary
key
(A1,
A2,
B1)
using
index;
这样就可以了。
❾ 怎样在sql server中创建复合主键
sql
server创建复合主键的2种方法创建复合主键:
方法一:创建表之后,alter
table
table_name
add
primary
key(字段1,字段2)
方法二:CREATE
TABLE
表名
(字段名1
Int
Not
Null,
字段名2
nvarchar(13)
Not
Null
字段名3…………
字段名N…………)
GO
ALTER
TABLE
表名
WITH
NOCHECK
ADD
CONSTRAINT
[PK_表名]
PRIMARY
KEY
NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO