https://xetown.com/qna/549636
여기 댓글 중에 DB에서 documents 부분 수정하는 걸 보고 따라해봤더니 (정확하게는 title의 varchar를 250에서 50으로 바꿔봤습니다)
지금까지 등록된 글들 중에 제목이 50자가 넘는 경우 그 초과분이 전부 삭제되어 버렸네요;;;
다행히 오늘 새벽분 백업자료가 있어서 받았는데
그렇다고 이걸 그대로 덮어씌우면 백업된 시점 이후의 글들은 죄다 날아가게 되는데...
다른거 다 놔두고 백업시점까지의 게시글 제목만 복원할 수 있는 방법은 없을까요?
해결책 알고 계시는 고수님들 답변좀 부탁드립니다
댓글 8
(현재 DB명이 A라고 하고, 새로 만든걸 B라고 할때, B에 백업분을 덮어씌우면 A에도 xe_documents가 있고 B에도 똑같이 xe_documents가 있어서 문제가 발생한다는 글을 언젠가 본 적이 있는 거 같네요)
여담으로 지금 검색해보니 제목이 50글자인 게시물이 600개네요;;; 이 중 상당수가 50자가 넘는데 varchar를 수정하는 바람에 짤린 글 같은데..
DB를 여러개 만들수 있다면, (만약 db한개에서 처리하려면 백업된 documents테이블만 임포트한후에 테이블명만 수정하시면 될것 같습니다)
Update 현재데이터베이스명.xe_documents a, 백업데이터베이스명.xe_documents b
SET a.title=b.title
WHERE a.document_srl=b.document_srl
and 날짜조건
이런식으로 주시면 될것 같습니다. 실제 xe에서는 테스를 안해봤기 때문에, 먼저 테스트 해본 후 적용하셔요.
날짜조건 말고(어차피 백업본 전체를 다 해야 하므로), 글자길이로 하려면 and CHAR_LENGTH( title ) > 50 이렇게 추가하면 될까요?
글자 길이 조건을 주시려면 and CHAR_LENGTH(b.title) >= 50 이런식으로 하시면 될것 같습니다. 그냥 다 덮어씌우실거면 굳이 길이 조건을 안주셔도 될거 같네요.