6월, 2018의 게시물 표시

MySQL Workbench SafeMode 해제 방법

이미지
  MySQL 워크벤치에서 DELETE, UPDATE문을 WHERE절 없이 실행하려 할 때 실행이 되지 않은 채 세이프모드를 해제하라는 경고가 나타날 경우 해결하는 방법입니다.   우선 Edit  -> Preferences  메뉴를 차례로 클릭해 환경설정 다이얼로그를 띄워주세요.   SQLEditor  섹션의 맨 아래, Safe Updates 체크박스의 체크를 해제 해주세요.   Workbench를 재시작 해주세요.   끝입니다. 참 쉽죠? 이제 DELETE, UPDATE문을 제약 조건 없이 실행해도 더이상 거부당하지 않습니다. 주의사항   위 방법을 실행할 경우, UPDATE, DELETE문에 WHERE절이 빠져도 경고 없이 실행 됩니다. 이것이 의미하는 바는, 실수로 WHERE절을 빠뜨린 채 실행해도 되돌릴 방법이 없어진다 는 것입니다.   DELETE문 같은 경우는 그 특성상 실수할 일이 적으나, UPDATE문같은 경우 실수로 마지막에 WHERE절을 빼먹는 경우가 심심찮게 발생할 수 있으므로, Safe Mode를 해제하고 작업할 경우 이 점을 반드시 잊지 말아야 합니다.   특수한 경우가 아닌 이상 세이프 모드를 켜놓고 제약 조건을 정확히 명시하는 것을 추천 드립니다. 여기서 특수한 경우란, 어느 한 테이블의 모든 행을 삭제해야 하는데, 특정할 만한 컬럼이 없는 경우 등  WHERE절을 쓸 수 없는 상황입니다.   특정할 만한 컬럼이 있는 경우, 예를 들어 auto-increment되는 id 컬럼이 있다면 아래와 같이 써서 모든 레코드를 지울 수 있습니다. DELETE FROM table_name WHERE id > 0;   그러므로 정말 특수한 경우가 아니라면, 세이프 모드는 켜두시는 것을 권장합니다.

[MSBUILD/C#] error MC2000: 알 수 없는 빌드 오류, 강력한 이름의 어셈블리가 필요합니다 문제 해결

  포맷 후 빌드를 하는데 아래와 같은 에러가 발생했습니다. error MC2000: 알 수 없는 빌드 오류 '파일이나 어셈블리 'AssemblyName, Version=###, Culture=neutral, PublicKeyToken=null' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다.  강력한 이름의 어셈블리가 필요합니다. (예외가 발생한 HRESULT: 0x80131044) 줄 #### 위치 ####.'  [경로]   밤을 새서일까요? 아뇨, 멍청해서일 겁니다. 저는 포맷 후 분명 프로젝트를 건드렸음에도 불구하고 프로젝트 설정에는 아무런 문제가 없을 것이라 철저히 믿은 채 'error MC2000 after format' 과 같은 키워드로 구글링을 했습니다.   당연히 일치하는 결과는 나올 리가 없고, 졸음이 쏟아지는 와중 솔루션을 찾아 검색질을 시작한 지 3시간이 다 돼 갈 쯤, 잠이 다 깨는 한 블로그 포스트 를 봤습니다. 보게 되고 말았습니다.   전에도 한 번 겪었던   일 이란 것이 더 화나게 하는군요. 아무튼 빌드시 위와 같은 문제가 발생할 경우 원인 은 아래와 같습니다.   한 어셈블리가 강력히 서명됐을 경우, 해당 어셈블리가 로드하는 모든  다른 어셈블리 역시 강력히 서명돼 있어야 한다.   전 포맷 후 테스트 인증 키를 재발급했고, 왜인진 모르겠지만 어셈블리 서명 체크박스에 체크를 해버렸던 겁니다. 인생 뭐 있나요. 소양댐에 다이빙할 준비나 해야겠습니다.   아무튼 해결 방법 은 아래와 같습니다.   프로젝트 속성 - 서명 - 어셈블리 서명(A) 체크박스 체크 해제  후 빌드   정말 간단합니다. 왜 간단할까요? 왜 개발할 때 죽어도 풀지 못할 것 같은, 몇시간, 길게는 며칠, 더 길게는 한달 이상 잡아먹는 무지막지해 보였던  문제들은 한순간에 풀리고 돌아보면 어이가 없을 정도로 쉬운 문제였던 것일까요. 혹시 이게 인생일까요?