2012-11-19 4 views
3

mysql 테이블에서 자바 스크립트 쿼리를 중지하고 다음 행을 삽입 할 때까지 기다리는 방법이 있습니까? 기능을 사용하여 예를 들어node.js 자바 스크립트 mysql 쿼리 대기 unitl 다음 행이 삽입되었습니다.

는 :

var query = connection.query('SELECT * FROM table'); 

나는 다음 행이 삽입 될 때까지, 테이블의 모든 행을 읽어을 표시하고 기다리고 싶지는 삽입 된 행을 읽고 기타 등등 삽입 될 때까지 기다립니다 ...

기본적으로 다른 테이블이 PHP 나 다른 스크립트 (트리거 이벤트)에서 업데이트 될 때마다 업데이트되는 테이블을 읽어야합니다.

자바 스크립트에서 슬라이딩 커서에 대한 정보를 찾을 수 없습니다. mysql 쿼리에 대한 기사가 있습니까?

+0

기본적으로 새로운 행이 삽입 될 때를 알기 위해 JavaScript를 원하십니까? 왜 행을 삽입하는 함수에 기능을 연결하지 않습니까? 그렇게하면 언제 새로운 행이 배치되는지 알 수 있습니다. – Joseph

+0

글쎄, 나는 다른 테이블 업데이트에서 mysql 트리거에 의해 생성 된 테이블을 읽고있다. 기본적으로 실시간 업데이트를 표시하고 싶습니다. 그리고 그것들은 PHP 스크립트 – sauletasmiestas

+0

에 의해 생성됩니다. 그런 다음 게시자가 db를 사용하는 유일한 사람이 아니라고 설명하고 그로부터 업데이트를 받고 싶다면 더 낫습니다. 그렇지 않으면 모든 사람이 앱에서만 사용하고 있다고 가정 할 수 있습니다. – Joseph

답변

2

api는 결코 노드 용 mysql 라이브러리를 사용하지 않았기 때문에 대답을 폴링 할 수 있습니다.

행 인터벌 개수
VAR 연결 = ... lastCount;

funciton mysqlPoll() { 
    var query = connection.query('SELECT count(field) as count FROM table'); 

    query.exec(function(result) { 
     if (result.count != lastCount) { 
      //Select all the rows here using offset to skip the already processes 
      //process them 
      lastCount = result.count; 
     } 
    }); 
} 

setInterval(mysqlPoll, 500); //every 1/2 second 

더 나은 당신은 Node.js를 핑에 간격

var connection = ..., 
    lastCount = 0; 

funciton mysqlPoll() { 
    var query = connection.query('SELECT * FROM table WHERE primaryId > '+lastCount); 

    query.exec(function(result) { 
     if (result.count != lastCount) { 
      //Select all the rows here using offset to skip the already processes 
      //process them 
      lastCount = lastResultsPrimaryId; 
     } 
    }); 
} 

setInterval(mysqlPoll, 500); //every 1/2 second 

또 다른 옵션은 소켓, (그물, HTTP 등)를 엽니 다하는 것입니다 키 차 자동 INC가있는 경우 그것은 PHP 스크립트에서 업데이 트를 트리거합니다.

희망 하시겠습니까?

+0

도와 주셔서 감사합니다. 나는 MySQL이 js와 함께 사용하기에 최선의 선택이 아니라는 것을 알고있다. 논리적 인 연결을 지원하는 데이터베이스를 알고있다. 하나의 SELECT에 두 개의 SELECT가 있고, MongoDB 같은 커서와 oplog 이벤트를 예로들 수있다. – sauletasmiestas

+0

https://github.com/1602/jugglingdb를 보았습니까? API 아래에있는 모든 db를 사용할 수 있습니다. 데이터 구조와 당신의 시도가 무엇인지 알지 못하면 적절한 db를 결정하는데 도움이 될 것입니다. –

관련 문제