MySQL에서 배열을 한번의 쿼리 처리문제
mysql 4.0버전을 사용하는데
DB에는 컬럼을 tinyint(200) unsigned이고 인덱스로 설정 해놓았습니다.
+---------------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-----------------------+------+-----+---------+-------+
| file_name | varchar(20) | YES | | NULL | |
| frame_Num | int(11) | YES | | NULL | |
| motion_Vector | tinyint(200) unsigned | YES | MUL | NULL | |
+---------------+-----------------------+------+-----+---------+-------+
이렇게 되어있습니다.
문제는 VC에서 배열을 선언했습니다.
random[200]이란 배열을 선언했는데
이안에 들어있는 값들은 0~255사이에 값들이 들어있는데
이 값들을 DB로 insert를 하는데 여러번 for문을 돌려서
삽입을 하는것이 아니고 random의 배열안에 들어있는값들을
한번의 query로 보내야 한다는 것입니다.
이부분을 어떻게 한번의 쿼리로 보내야하는지 알려주세요 ㅜㅜ
조건이 있다는 DB에 만들어놓은 컬럼을 분할하지 않고
절대로 for문이나 while문을 통해여 보내지 말아야 한다는 것입니다.
따른 답변 부탁드립니다. ㅜㅜ 몇일째 이것땜에 삽질을 하는지 모르겠어요
여러분 가르쳐주세요 ㅜㅜ
MySQL 은 배열을
MySQL 은 배열을 지원하지 않습니다.
TINYINT(200) 의 (200) 은 소용없는 내용입니다.
TINYINT 는 C 의 char 와 동일한 크기를 갖습니다.
한필드에 넣으시려면 varchar 로 잡으시고, 쉼표구분(1,2,3,4...) 문자열로 변환하셔서 넣으시면 되겠고,
인덱싱이 필요하시면 필드 200개를 생성하셔야 합니다.
PostgreSQL 은 배열도 지원합니다.
-- 질문 해석을 다르게 하면 --
MySQL 에서는 한 쿼리로 다수의 rows 를 INSERT 하는 것이 가능합니다.
emerge money

https://xenosi.de/
추가. MySQL 의 INT(수)
추가.
MySQL 의 INT(수) 는 자릿수를 의미합니다.
TINYINT 는 0~255 이므로 TINYINT(3) 까지만 유효하고,
그 이상 적어도 의미가 없습니다.
emerge money

https://xenosi.de/
댓글 달기