2011-08-23 6 views
1

24 시간 동안 등록되지 않은 모든 활성화되지 않은 계정 삭제에 대한 질문이 있습니다. MSSQL을 사용하고 있습니다.모든 활성화되지 않은 계정 삭제

데이터베이스 설정 :

account | usrActivated | regTime 
test   0   1314223187 

SQL 쿼리 :

$time = 24 * (60 * 60); 
DROP FROM ACCOUNT_TBL_DETAIL WHERE usrActivated=0 AND regTime < $time 

겠습니까이 작품이 같은 쿼리를 실행하면? 24 시간이 경과 된 비활성 계정 삭제 중.

+1

먼저 SELECT를 사용해 보시지 않겠습니까? –

+1

네이티브 Sql 서버'DATE' 유형 대신 유닉스 타임 스탬프로 날짜를 저장하는 특별한 이유는 무엇입니까? – NullUserException

+0

이유가 없으며, 그 밖에 무엇을 해야할지 몰랐습니다. – SilentCoder

답변

4
delete from ACCOUNT_TBL_DETAIL 
where usrActivated=0 AND regTime <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 1 DAY)); 

당신이 MySQL을 사용한다고 가정합니다.

drop은 데이터베이스에서 테이블을 제거하기위한 것입니다. delete는 테이블에서 레코드를 제거하기위한 것입니다.

+0

죄송합니다. 삭제를 의미하는 것은 삭제를 의미합니다. SQL Server에서와 같이 MSSQL을 사용하고 있습니다. 나는 Now()가 MSSQL의 함수라고 생각하지 않는다. – SilentCoder

+0

@ Silent - SQL 서버의 경우'regTime <= DATEADD (DAY, -1, GETDATE()) '를 사용할 수 있습니다. –

+0

@Martin 유닉스 타임 스탬프가 아닌 날짜를 알려줍니다 – NullUserException

1

아무 것도 삭제하지 않으므로 표현한 것처럼 보이지 않습니다. 1970 년에 만들어진 계정이 없다면 어쨌든. 이 시도 :

DELETE FROM ACCOUNT_TBL_DETAIL 
WHERE usrActivated = 0 
    AND regTime < UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY) 

는 테스트 실행을하는 것을 잊지 마십시오 ( SELECT *DELETE 교체)이 당신이 원하는 것을 확인 할 수 있습니다.

+0

Now()는 MSSQL에서 함수가 아닙니다. 나는 추측하고 있습니다. – SilentCoder

+0

MSSQL을 지정하지 않았으므로 어떻게 알았습니까? – cdhowie

+0

다른 점은 그렇게해서 미안하니? 아마 – SilentCoder

0

회의적으로 들리지는 않겠지 만이 SQL을 실제로 실행하기 전에 잠깐 등록한 사람을 삭제할 수도 있습니다. 그/그녀는 활성화 중일 것입니다.

+0

(usrActivated = 0)은 등록하지 않은 사람을 식별하지만 두 번째 부분 (하루 간격 확인)은 잠시 뒤로 등록한 사람을 삭제합니다 (하지만 아직 활성화되지는 않았습니다). – Arun

+0

데이터베이스를 깨끗하게 유지하여 스팸으로 가득 차게하는 요지입니다. 따라서 등록 후 계정을 활성화하지 않으면 계정이 삭제됩니다. – SilentCoder

+0

오후 11시 59 분에 등록하고 채널을 탐색하여 더 나은 것을 시청한다고 가정 해 보겠습니다. 오전 12시에 삭제 스크립트가 시작됩니다 (등록 시작 후 1 분). 드디어 지미 팰런과 함께 늦은 밤을보기로 결정했습니다. 나는 등록을 완료하기 위해 돌아왔다 - 활성화를 시도한다. 그러면 어떻게 될까요? – Arun

0

오후 11시 59 분에 등록하고 채널을 탐색하여 무언가를 더 잘 볼 수 있습니다. 삭제 스크립트는 오전 12시에 시작합니다 ( 등록 시작 1 분 후). 드디어 지미와 함께 늦은 밤을보기로 결정했습니다 Fallon. 나는 등록을 완료하기 위해 돌아왔다 - 활성화를 시도한다. 그러면 어떻게 될까요? - Arun 2011 년 8 월 24 일 15시 50 분

개별적으로 비활성화 된 곳으로 만들 수 있습니다. 등록한 지 하루 만에 등록한 것이 아니라 3 일 후에 등록 했나요? 또는 오랫동안 당신이 원하는. 그러나 스크립트가 전체 사이트에 대해 3 일마다 실행되는 것과 같은 것은 아닙니다. 그것은 단지 한 사람 일 것입니다. 동시에 여러 사용자가 등록하지 않으면 스크립트가 실행되는 유일한 시간입니다. 희망이 귀하의 질문에 대한 답변.

관련 문제