公司项目笔记oracle:将老表的某些字段插入到新表(序列的创建,触发器编写将主键设置为自增长)

首先,我要创建的新表叫ftp_account

--1.新建一张FTP账户表: ftp_account字段包括
ID,        account_id,   account_name,    user_name,    user_pwd,     create_time
NUMBER(22),VARCHAR2(32),  VARCHAR2(255), VARCHAR2(255), VARCHAR2(255), DATE;

CREATE TABLE vnv.ftp_account(
       ID NUMBER(22),
             account_id VARCHAR2(32),
             account_name VARCHAR2(255),
             user_name VARCHAR2(255),
             user_pwd VARCHAR2(255),
             create_time DATE,
             PRIMARY KEY(ID)
);

发现还少了几个字段:
ALTER TABLE vnv.ftp_account ADD(create_name VARCHAR2(255),update_time VARCHAR2(255),update_name VARCHAR2(255));
--创建序列(与mysql不同,oracle设置主键为自增长必须先创建序列)
create sequence seq_ftpId
increment by 1
start with 1
NOMAXVALUE
NOCYCLE
CACHE 100
ORDER
;
--编写触发器(新增时,主键为自增长值)下面的seq_ftpId是我上面创建的序列名,vnv.ftp_account是表名
create or replace TRIGGER FTP_ACCOUNT_TRI
  before insert on vnv.ftp_account  
REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW
begin
    SELECT seq_ftpId.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
--查看表所有数据
SELECT * FROM vnv.ftp_account;

--2.把之前的存量数据插入到新表中(这里我的两张表是自己的别,记得改)
INSERT INTO vnv.ftp_account(account_id,account_name) SELECT  a.account_id,b.name FROM vnv.RECONCILIATION_CONFIG a,vnv.ACCOUNT b WHERE a.account_id = b.account_id; 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值