2017-04-04 7 views
0

데이터베이스 스키마의 테이블에서 모델을 만들었습니다. 그것은 올바르게 작동하지만 테이블의 열 이름을 바꾼 후 서버에 동기화 할 때. Navicat은 변경 사항을 인식하고 실행해야하는 SQL 쿼리를 표시합니다. 쿼리는 다음과 같습니다 : Navicat 모델의 필드 이름을 바꿔서 드롭없이 서버에 동기화

  • 가 새 이름으로 열을 생성
  • 드롭 인덱스

    • 비활성화 외래 키를 확인
    • 재 작성 이전에 현재 생성 된 열이있는 인덱스를 떨어
    • 드롭 된 열
    • 외래 키 검사 사용 가능

    어떻게 할 수 있습니까? Navicat이 칼럼을 삭제하지 않도록 강제합니다. 그냥 이름을 바꾸시겠습니까?

    미리 감사드립니다. 단순히 열 이름을 변경하기 위해 문을 실행하여

  • +1

    Navicat 지원에이 질문을하는 것이 좋습니다. 또한 [dbForge Studio for MySQL] (http://www.devart.com/dbforge/mysql/studio/)에서이 열의 이름을 바꿀 수 있지만 'Refactor'기능은 이름을 바꿀 때 종속 객체를 변경합니다 (외래 키, 뷰 , 루틴 ...). – Devart

    +0

    추천 해 주셔서 감사합니다. 나는 곧 그것을 시도 할 것이다. :) – kukko

    +0

    @Devart 그것은 우리의 필요를 완전히 충족시킵니다. 권장 주셔서 감사합니다! Navicat은 그렇게 할 수 없지만, dbForge는 필드와 테이블의 이름을 삭제하는 대신 삭제하고 다시 만들 수 있습니다. 이 질문을 답으로 추가하면 해결책으로 받아 들일 것입니다. :) – kukko

    답변

    1

    dbForge Studio for MySQL에서 개체 편집기에서보세요. 종속 개체 수정을 사용하여 필드의 이름을 바꿀 수 있습니다. 여기

    는 열 이름을 변경하는 또 다른 간단한 방법입니다 :

      데이터베이스 탐색기에서
    • 선택 열
    • F2 키를 누릅니다 (이름 바꾸기 명령)와 종속 개체 (이름 바꾸기를 선택합니다 새 이름
    • 를 입력하거나 리팩토링 수정)
    0

    :

    ALTER TABLE your_tablename CHANGE column_name new_name datatype other_options_like_nullable; 
    

    예를 들어

    ALTER TABLE myTable CHANGE badname newname INT NOT NULL DEFAULT 0; 
    
    +0

    수동으로 쿼리를 작성하는 것이 아니라 모델러를 통해 열의 이름을 바꾸고 싶습니다. – kukko

    +0

    글쎄, 그런 도구들이 가능한 한 페일 세이프 (fail-safe)가 되려고 노력하기 때문에 종종 필요한 것보다 더 복잡한 일을하는 경우가 많다. 행운을 빕니다... – fancyPants