질문 Q #24141
ci3에서 insert_batch로 삽입한 PK 가져올 수 있는 방법 있을까요?
나이토리아 2022-03-15 15:45:49

insert_id()로는 첫 번째만 가져와서 이게 좀 한계가 있더군요..

 

방법이.. 없겠죠?

답변 7
#1 변종원(웅파) 2022-03-15 16:00:20

간혹 매뉴얼에 없는 기능이 있는 경우가 있어서 소스를 봤는데 없네요.

foreach 로 insert 실행하셔야할 것 같습니다.

#2 나이토리아 2022-03-15 16:14:18
어후.. 몇천개를 insert할 예정인데 그걸 다 해야하나보네요.. mysql에서도 지원하지는 않겠죠? 감사합니다.
#3 테러보이 2022-03-15 18:25:32
마지막 인서트 아이디로 레인지(마지막 아이디 -개수) 해서 뽑으면 안되나요? 결국 ¹씩 증가할건데
#4 나이토리아 2022-03-15 18:26:57
그것도 생각해봤는데 insert 도중 다른 곳에서 insert가 들어가면 어떻게 해야하나에 대한 의문점울 제기하시더라고요....
#5 테러보이 2022-03-15 20:16:03
pk를 어디에 쓰시려는건가요? 굳이 pk가 아님 작업 필드 하나 추가해서 배치 돌릴때 모두 같은 코드 넣고 후처리하면 되지않을까요?
#6 한대승(불의회상) 2022-03-16 09:38:06

insert된 pk를 모두 알아 내려면 웅파님 의견대로 foreach 루프돌면서 배열에 저장하는 방법밖에는 없습니다.

insert_id() 함수 자체가 mysql에서 제공하는 last_insert_id() 와 동일한 기능이기 때문입니다.

#7 나이토리아 2022-03-16 09:39:14
추가로 테이블에 값을 FK를 포함하여 insert하려고 했습니다. 방법이 없는 것으로 보아 그냥 foreach가 정답일 것 같네요. 감사합니다.