日期:2014-05-16  浏览次数:20392 次

Oracle创建新用户、表空间、表、序列以及触发器
--创建表空间。
create tablespace admin_01
datafile 'D:\oracle\product\10.2.0\oradata\orcl\admin_01.dbf'
size 50M
autoextend on next 32M maxsize 2048M
extent management local;

--创建新用户。
create user admin identified by admin default tablespace admin_01;

--新用户授权。
grant connect,resource,dba to admin;

--连接新用户
conn admin/admin

--创建序列
create sequence U_seq
minvalue 1
maxvalue 10000
start with 1
increment by 1
cache 20;

--创建表
create table Users
(
Id varchar2(10) not null primary key,
uName varchar2(20) not null,
uPwd varchar2(10) not null,
uSex varchar2(10) not null,
uEmail varchar2(20) not null,
uLike varchar2(20)
);

--插入数据
insert into Users values(U_seq.nextval,'aa','123456','女','feiyan811@126.com','唱歌');
insert into Users values(U_seq.nextval,'bb','123456','男','feiyan811@126.com','篮球');


--使用触发器将序列应用到表上
-- 创建序列
create sequence U_order
minvalue 1
maxvalue 10000
start with 1
increment by 1
cache 20;

--创建表
create table Orders
(
  id number not null primary key,
  oName varchar2(20) not null,
  oPrice number not null,
  oNum number not null
);

--给表,添加一个触发器:将序列应用于表上
--创建触发器
create or replace trigger Trigger_Orders_GUID_Insert 
before insert on Orders
for each row
begin
select U_order.nextval into  :new.id from sys.dual/dual;
end;
/ -- 这里,得加一个反斜杠,否则,执行不了

--插入数据
insert into Orders(oName,oPrice,oNum) values('oracle书籍',98.88,1);
insert into Orders(oName,oPrice,oNum) values('mysql书籍',68.66,2);