複製A表的若干欄位的資料到B表
阿新 • • 發佈:2018-12-18
這是將表A的三個值查詢出來,然後插入表B;需要注意的是,表A的三個值和表B的三個值是一一對應的,所以表B事先存在,並且欄位和表A對應;
insert into tableB(value1,value2,value3)
select value4,value5,value6
from tableA;
例如
insert into t_booknew_monthlyAssessment (NURSE_NAMES,NURSE_IDS,WARD_IDS,DEPT_IDS) select USER_NAME,USER_ID,DEPT_ID,WARD_ID from T_HRM_USER_INFO
我插入的時候遇到一個問題。報錯orcl01400,插入失敗。
原因是我的表有主鍵,並且不能為空,所以插入失敗。
解決方法:建立觸發器自增。
觸發器方式也需要建立SEQUENCE ,然後在將SEQUENCE 設定觸發。 1.建立SEQ 執行以下SQL 建立表 ---自增序列 CREATE SEQUENCE T_SYS_USER_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE ; 2.設定觸發器 執行下邊語句 --建立觸發器 create or replace trigger T_SYS_USER_USER_ID_TRIGGER before insert on SYS_USERS for each row begin select T_SYS_USER_SEQ.nextval into :new.user_id from dual; end T_SYS_USER_USER_ID_TRIGGER; 注意一下這四條資訊改成自己的就行了 T_SYS_USER_USER_ID_TRIGGER 是設定的觸發器名字 SYS_USERS是表名 T_SYS_USER_SEQ 是序列名 new.user_id 是 new.主鍵 3.插入的SQL 忽略id 直接插入, id資料庫自動新增 insert into sys_users(user_name,user_pwd,sex) values('shaoduo','shao111','男') ; commit ;