如何在数据库表中建立复合主键
来源:互联网 发布:网络教育本科第二学历 编辑:程序博客网 时间:2024/05/01 16:52
(即多个字段同时作为主键)主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。
建立主键有两种方法:一种是在数据库提供的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
建立主键有两种方法:一种是在数据库提供的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));
(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));
0 0
- 如何在sqlserver数据库表中建立复合主键
- 如何在sqlserver数据库表中建立复合主键
- 如何在数据库表中建立复合主键
- 如何在表中建立复合主键(即多个字段同时作为主键)
- play! 如何建立复合主键
- 建立复合主键
- Annotation(2)-----------在EJB3中复合主键
- hibernate 在mysql中复合主键应用
- 数据库的复合主键
- hibernate 映射无主键和复合主键的数据库表
- hibernate中复合主键
- 数据库的复合主键、多主键
- hiberante中使用复合主键
- hiberante中使用复合主键
- hiberante中使用复合主键
- hiberante中使用复合主键
- Hibernate中复合主键映射
- 带有复合主键的表在SpringBoot中的使用
- 插入排序
- C#之变量与常量
- 单机hbase无法启动:Retrying connect to server: node1/10.40.0.201:9000. Already tried 0 time(s).
- log4j的简单异常解决办法
- MFC中添加一个对话框到主视图
- 如何在数据库表中建立复合主键
- Codeforces Round #161 (Div. 2) D. Cycle in Graph(无向图中找指定长度的简单环)
- mac最好的截图软件
- HDU 2531 Catch him(BFS:判断是否存在路径)
- Java中的基本数据类型及运算符
- 先presentModalViewController后pushViewController没有效果的解决方法
- 嵌套类
- workstation 10 下 11g rac安装步骤
- 0xC0000094: Integer division by zero