表定义中定义主键和单独建立主键的区别?

[复制链接]
查看11 | 回复9 | 2005-6-27 01:01:25 | 显示全部楼层 |阅读模式
比如下面的例子,他们有什么区别:
1.表中直接建立主键
CREATE TABLE 产品
( ID NUMBER(8) CONSTRAINT 产品_pk PRIMARY KEY,
名称 VARCHAR2(100) NOT NULL,
说明 VARCHAR2(1000),
价格 NUMBER(8,2) NOT NULL
)
2.单独建立主键:
CREATE TABLE 产品
( ID NUMBER(8)not null,
名称 VARCHAR2(100) NOT NULL,
说明 VARCHAR2(1000),
价格 NUMBER(8,2) NOT NULL
);
ALTER TABLE 产品 ADD CONSTRAINT 产品_pk PRIMARY KEY (ID)
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
就你的情况是一样的
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
那为什么要提供两种方式呢?他的目的何在?方便吗?
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
没区别,为了方便你在定义表之后,事后创建主健吧
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
做一件事情可以有多种方法
第二种更灵活, 也更麻烦一些
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
大家有什么依据没有?
比如ORACLE的文档中哪个地方对这个的说明等.
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
这个要什么依据?两种方式都很有用。这还不够?
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
我们通常采用第二种方法,
把索引建在与表不同的表空间,减少IO冲突,加快访问速度


回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
第 二种更灵活一些
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
最初由 oldboy 发布
[B]那为什么要提供两种方式呢?他的目的何在?方便吗? [/B]

复合主键第一种难以表达,
还有第三种方式,在建表语句最后写,
其实只是接口而已,内部是一样的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行