2011-02-12 4 views

답변

7

테이블을 "잠금"한다는 것은 일반적으로 데이터를 편집하는 동안 다른 프로세스가 테이블의 데이터에 대한 액세스를 제한한다는 것을 의미합니다. 테이블을 변경하거나 삭제할 수 없도록 보호하려면 테이블에 대한 사용 권한을 변경하고 DROP, UPDATE, INSERT 및 제한하려는 다른 사용 권한을 해당 테이블에 대해 변경하는 것이 가장 좋은 해결책이라고 생각합니다.

REVOKE DROP, INSERT, TRUNCATE ON database.table FOR 'user'@'host'; 
+0

나는 이것이 구두꾼이 찾고있는 것일 수 있다고 생각합니다. 예를 들어, 잠금은 연결 동안 만 지속됩니다. 따라서 네트워크 연결이 작동하지 않는 것처럼 실수로 연결을 끊으면 테이블을 삭제할 수 있습니다. 잠금은 테이블에 대한 액세스를 일시적으로 차단하기위한 것이므로 "무엇이든 상관없이 편집하거나 삭제할 수 없습니다"라는 요구 사항을 완벽하게 충족시키지 못합니다. – Kibbee

+0

예. 왜 잠금이 작동하지 않는지 궁금 해서요. 감사! –

+0

'TRUNCATE ON ...'에서 구문 오류가 발생합니다. –

2

LOCK 키워드를 사용할 수 있습니다.

LOCK TABLES 
    tbl_name [[AS] alias] lock_type 
    [, tbl_name [[AS] alias] lock_type] ... 

: 여기

LOCK TABLES t1 READ; 

구문입니다

lock_type: 
    READ [LOCAL] 
    | [LOW_PRIORITY] WRITE 

예를 들어 테이블을 고정하는 데 필요한 추가 정보를 워드 프로세서 및 요구 사항을 읽고이 또한 DB에 따라 달라집니다 엔진 유형.