oracle如何生成主键,oracle如何添加主键
Oracle创建主键问题
其实ORACLE创建主键上面的两种方式都可以,如何使用也看个人的选择了,毕竟建立主键是针对表的操作,而不像在表中大批量的查询数据,所以性能方面的问题倒是不用过多考虑。我个人更倾向于第二种,因为第二种方式的语句更清晰,它的作用是修改表结构,添加一个约束,PK一般都主键的前缀,表明了这个约束是为一个列添加主键,同样还可以使用FK来建立外键的约束或者check约束等都可通过第二条语句的方式来实现!~
成都创新互联公司电话联系:18980820575,为您提供成都网站建设网页设计及定制高端网站建设服务,成都创新互联公司网页制作领域十载,包括石牌坊等多个行业拥有丰富的营销推广经验,选择成都创新互联公司,为企业保驾护航。
oracle中的数据库怎样设置主键?
建表要点:
1 Gengeral 中定义表名,表空间。
2 Columns 对字段进行定义。
3 在Key选择主键字段,定义主键名称,一般用表名。
不能“Apply” 一般是定义不完全。
oracle:
甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。
2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
20世纪约70年代 一间名为Ampex的软件公司,正为中央情报局设计一套名叫Oracle的数据库,埃里森是程序员之一。
1977年埃里森与同事Robert Miner创立“软件开发实验室”(Software Development Labs),当时IBM发表“关系数据库”的论文,埃里森以此造出新数据库,名为甲骨文。
1978年 公司迁往硅谷,更名为“关系式软件公司”(RSI)。RSI在1979年的夏季发布了可用于DEC公司的PDP-11计算机上的商用ORACLE产品,这个数据库产品整合了比较完整的SQL实现,其中包括子查询、连接及其他特性。美国中央情报局想买一套这样的软件来满足他们的需求,但在咨询了IBM公司之后发现IBM没有可用的商用产品,他们联系了RSI。于是RSI有了第一个客户。
最先提出“关系数据库”的IBM采用RSI的数据库。1982年再更名为甲骨文(Oracle)。
oracle创建联合主键
1.创建表时:
create table table_name
(
first_name varchar2(12),
second_name varchar2(10),
idcard varchar(36),
home_name varchar(66),
constraint pk_table_name primary key(first_name,second_name,idcard) -- 联合主键
);
2.创建表之后追加联合主键
alter table table_name add constraint pk_table_name primary key (first_name,second_name);
oracle 主键自动生成
hibernate的配置文件里不是有主键生成策略的配置吗?可以手动指定,也可以自动生成的。
hibernate主键生成机制
1) assigned
主键由外部程序负责生成,无需Hibernate参与。
2) hilo
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主
键生成历史状态。
3) seqhilo
与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史
状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。
4) increment
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持
一个变量,以保存着当前的最大值,之后每次需要生成主键的时候
将此值加1作为主键。
这种方式可能产生的问题是:如果当前有多个实例访问同一个数据
库,那么由于各个实例各自维护主键状态,不同实例可能生成同样
的主键,从而造成主键重复异常。因此,如果同一数据库有多个实
例访问,此方式必须避免使用。
5) identity
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL
中的主键生成机制。
6) sequence
采用数据库提供的sequence 机制生成主键。如Oralce 中的
Sequence。
7) native
由Hibernate根据底层数据库自行判断采用identity、hilo、sequence
其中一种作为主键生成方式。
8) uuid.hex
由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后
以长度32 的字符串表示)作为主键。
9) uuid.string
与uuid.hex 类似,只是生成的主键未进行编码(长度16)。在某些
数据库中可能出现问题(如PostgreSQL)。
10) foreign
使用外部表的字段作为主键。
一般而言,利用uuid.hex方式生成主键将提供最好的性能和数据库平台适
应性。
oracle 怎么新建主键!
1.先建一个序列:
-- Create sequence
create sequence auto_id
minvalue 1
maxvalue 9999999999999
start with 1
increment by 1
cache 10;
2.创建触发器:
create or replace trigger auto_col_trigger
before insert on auto_tab
for each row
declare
v_id number := 0;
begin
select auto_id.nextval into v_id from dual;
:new.id := v_id;
end;
我随便写的,表名和字段名改一下就行了。
当前文章:oracle如何生成主键,oracle如何添加主键
文章来源:http://myzitong.com/article/hdschh.html