c <-> db 간 연동에서 질문입니다.
res = mysql_query(&mysql,"selectip_src,ip_dst,ip_ver,ip_hlen,ip_tos,ip_len,ip_id,ip_flags,ip_off,ip_ttl,ip_proto,ip_csum from iphdr;");
if(res)
{
printf("select error : %s \n",mysql_error(&mysql));
}
else
{
res_ptr = mysql_store_result(&mysql);
if(res_ptr)
{
printf("검색row %lu rows\n",(unsigned int) mysql_num_rows(res_ptr));
while((row = mysql_fetch_row(res_ptr)) != NULL)
{
sprintf(str,"%5s %5s %5s %5s %5s %5s %5s %5s %5s %5s %5s %5s\n",row[0],row[1],row[2],row[3],row[4],row[5],row[6],row[7],row[8],row[9],row[10],row[11]);
db_init1(str);
}
}
이 부분은 db select 부분입니다. select 를하고 str 변수에 저장하고 원격지 호스트에 insert를 할려고 합니다. 근데 여기서 db에 새로운 레코드들이 추가되면 insert할시 중복 삽입이 되서 처음 데이터들도 삽입되는데요 추가된 레코드만 삽입할려면 어떻게 해야할까요?
mysql에서 트리거가
mysql에서 트리거가 되려나 모르겠네요.
된다면 간단합니다.
로컬디비의 해당 테이블에 인서트의 경우 작동하는 트리거를 만들어서 트리거가 작동할 경우
인서트 되는 고유키값을 별도의 테이블에 저장합니다.
그리고 데이터를 가져올때 트리거가 넣은 테이블의 고유키값을 이용하여 원본테이블에서 데이터를 읽어온후
원격지에 넣습니다. 그리고 트리거 테이블에서 원격지에 넣은 데이터의 키값을 지우면 됩니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
댓글 달기