专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

docker 安装 oracle-11g && oracle 自增id实现之序列

ins518 2024-10-22 14:56:49 技术文章 9 ℃ 0 评论

1、docker 安装 oracle-11g

1:引入oracle源
	docker pull oracleinanutshell/oracle-xe-11g

2:开始创建容器
	 docker run -h "oraclehost" --name "oracle" -d -p 9090:8080 -p 1521:1521 oracleinanutshell/oracle-xe-11g

3:docker ps -a

4:在终端中进入此容器
	docker exec -it 94910105eb6f /bin/bash
	
5:使用普通身份登入
	sqlplus system/oracle
	
6:创建用户并分配权限
	6.1 查看用户
		select username,password from dba_users;
	6.2 创建用户:用户名为 oracle;密码为:oracle
		create user oracle identified by oracle;
	6.3 查看是否有此用户 oracle
		select * from all_users;
	6.4 给用户赋予connect 和 resource 角色(connect: 保证数据库可以链接;resource:该用户可以使用数据库的资源;create session:会话的权利)
		grant connect,resource,create session to oracle;
	6.5 创建表格添加,更改用户表空间配额
		grant unlimited tablespace to oracle;
	6.6 删除用户
		drop user oracle;

7:开启docker oracle服务
	docker start oracle

2、oracle 自增id实现之序列

1.创建表
create table my_table (
	 id number(10) constraint pk_id primary key,
	 name varchar2(20) not null,
	 phone_Number varchar2(20) constraint unique_phone_number unique,
	 email_Address varchar2(200) constraint email_not_null not null,
	 home_Address varchar2(200) constraint home_addr_not_null not null
)
#查看约束 
select * from user_constraints;


2.创建序列
create sequence my_table_seq start with 1 increment by 1;
#查看序列
select * from user_sequences;

3.创建触发器
create or replace trigger bi_my_table 
before insert on my_table
for each row
when(new.id is null)
begin
  select my_table_seq.nextval into:NEW.ID from dual;
end;
#查看触发器
select * from user_triggers;

 

#测试

insert into my_table(name,phone_number,email_address,home_address) values('zcl','13800138000','youremail@gmail.com','guangzhou')
commit;

select * from t_user;

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表