首先,我要创建的新表叫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;