Oracle 여러 데이터 동시 삽입
1745 단어 orcale
insert all
into tableName (id, name, age) values ( 1, 'name1', 20)
into tableName (id, name, age) values ( 2, 'name2', 21)
into tableName (id, name, age) values ( 3, 'name3', 18)
select 1 from dual
끝 에 'select 1 from dual' 이 빠 질 수 없습니다.
2. 시퀀스 와 트리거 를 통 해 메 인 키 를 추가 합 니 다: 1), 생 성 표:
create table tableName(
id Number(10) not null,
name Varchar2(200),
age Number(14,2),
constraint pk_tableName_id PRIMARY KEY (id) ---
)
2) 、 생 성 시퀀스:
create sequence seq_tableName
start with 1 -----
maxvalue 99999999999 -----
increment by 1; -------
3) 、 트리거 생 성:
create or replace trigger tr_tableName
before insert on tableName
for each row ----
begin
select seq_tableName.nextval into :new.id from dual;
end;
seq_tableName 은 시퀀스 이 고 id 는 tableName 의 메 인 키 id 입 니 다.
4) 여러 개의 데 이 터 를 동시에 삽입 하고 홈 키 는 스스로 생 성 합 니 다.
insert all
into tableName (name, age) values ( 'name1', 20)
into tableName (name, age) values ( 'name2', 21)
into tableName (name, age) values ( 'name3', 18)
select 1 from dual
5) 、 MyBatis 에서 사용:
insert all
into t_relation_party(
name,
age)
values(
#{entity.name},
#{entity.age})
select 1 from dual
insert all 구문 에 서 는 seq 를 직접 사용 할 수 없습니다.test_insert. nextval, into 문구 마다 seq 를 붙 여도test_insert. nextval 도 여러 값 을 얻 지 못 합 니 다.