易截截图软件、单文件、免安装、纯绿色、仅160KB

Mysql,SqlServer,Oracle主键自动增长的设置


Mysql,SqlServer,Oracle主键自动增长的设置
1、把主键定义为自动增长标识符类型
在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:
create table customers(id int auto_increment primary key not null, name varchar(15));
insert into customers(name) values("name1"),("name2");
select id from customers;
以上sql语句先创建了customers表,然后插入两条记录,在插入时仅仅设定了name字段的值。最后查询表中id字段,查询结果为:
id
1
2
由此可见,一旦把id设为auto_increment类型,mysql数据库会自动按递增的方式为主键赋值。
在MS SQLServer中,如果把表的主键设为identity类型,数据库就会自动为主键赋值。例如:
create table customers(id int identity(1,1) primary key not null, name varchar(15));
insert into customers(name) values("name1"),("name2");
select id from customers;
查询结果和mysql的一样。由此可见,一旦把id设为identity类型,MS SQLServer数据库会自动按递增的方式为主键赋值。identity包含两个参数,第一个参数表示起始值,第二个参数表示增量。
2、从序列中获取自动增长的标识符
在Oracle中,可以为每张表的主键创建一个单独的序列,然后从这个序列中获取自动增加的标识符,把它赋值给主键。例如一下语句创建了一个名为customer_id_seq的序列,这个序列的起始值为1,增量为2。
create sequence customer_id_seq increment by 2 start with 1
一旦定义了customer_id_seq序列,就可以访问序列的curval和nextval属性。
curval:返回序列的当前值
nextval:先增加序列的值,然后返回序列值
以下sql语句先创建了customers表,然后插入两条记录,在插入时设定了id和name字段的值,其中id字段的值来自于customer_id_seq序列。最后查询customers表中的id字段。
create table customers(id int primary key not null, name varchar(15));
insert into customers values(customer_id_seq.curval, "name1"),(customer_id_seq.nextval, "name2");
select id from customers;
如果在oracle中执行以上语句,查询结果为:
id
1
3
http://blog.csdn.net/andyelvis/archive/2008/05/14/2446865.aspx


相关文档:

oracle 查看隐含参数的脚步

脚本1:
SELECT NAME 
,value 
,description 
from ( --GV$SYSTEM_PARAMETER 
SELECT x.inst_id as instance 
,x.indx+1 
,ksppinm as NAME 
,ksppity 
,ksppstvl as value 
,ksppstdf as isdefault& ......

Oracle用户空间统计

select owner,sum(bytes)/1024/1024 sum_MB
from dba_segments
where tablespace_name='USERS' and owner like 'ZJ%'
group by owner
order by 2 desc;
SET NEWPAGE NONE HEADING OFF SPACE 0 PAGESIZE 0 TRIMOUT ON TRIMSPOOL ON LINESIZE 25 ......

oracle优化1

--设置密码法过期
alter profile default limit PASSWORD_LIFE_TIME unlimited;
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
--取消审计
alter system set audit_trail='FALSE' scope=spfile;
--定义连接数据库的最大进程数
alter system set processes=1024 scope=spfile;
--关闭垃圾回收站
al ......

oracle 相關的sql語句

数据字典dict总是属于Oracle用户sys的。
  1、用户:
   select username from dba_users;
  改口令
   alter user spgroup identified by spgtest;
  2、表空间:
   select * from dba_data_files;
   select * from dba_tablespaces;//表空间
   select tablespace_name,sum(bytes), sum(b ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号