SQL에서 처리 대상(Table, Database)이 많을 때 한번 혹은 몇 줄의 SQL문으로 처리 하는 방법은?
안녕하세요?
테이블이 a b c가 있다고 할 때,
이 테이블의 문자셋을 전부 euckr로 설정 하려고 한다면 일일이 매번 입력 해 즈는 방법이 잇을 겁니다.
또는 스크립트를 써서 SHOW TABLES 쿼리를 주고 이 결과값을 받아다가 배열화 시키고 이 배열을 대상으로 관련 쿼리를 다시 주고 오류를 검사하는 식이면 될 거 같습니다.
하지만... 문제는 지금 제가 필요한 것은 스크립트를 쓰는 것도 아니고 하나 하나 입력 하는 것도 아닙니다. SQL로 그냥 해결 하고 싶은데요... 이렇게 할 수 잇는 함수나 뭐 기능이 없을까요... 테이블이 한 DB당 수십 개는 되고 이런 DB가 여러 개 있는 상황입니다. DB는 그렇게 많지 않고 Table만 많으니 DB는 제가 직접 돌아 가면서 하면 되는데 Table는 전부 치려니 골이 아프네요.. 리스트를 만든 다음에 그 리스트에 쿼리를 적용 해서 콘솔 유틸리티로 전송 하는 방법도 잇찌만 이건 하나 하나 입력 하는 것과 같은 결과이기 때문에...
SQL에도 C나 Shell 스크립트처럼 for나 while같은게 없을런지요.. 아무튼 그런게 아니라도 방법이 있다면 알고싶습니다. 솔직히 프로그램을 짜기 위해 알아야 하는 거라면 스크립트를 짜고 말겠지만, 관리 차원에서 필요한 작업이라...
MySQL에 서브쿼리인가 하는 것이 잇떤데 받은 결과값을 가져다가 제처리에 쓸 수 잇는 걸로 알고 잇씁니다. 근대 봐도 모르겠군요.
너무 본론이 길어서 죄송하고요. 아무튼 뭔가 방법이 잇다면 좀 알려 주셨으면 합니다. 몇일간 MySQL 때문에 죽어라 고생 하고 잇습니다 으으. 왜 MySQL때문에 PHP에 Apache 메뉴얼 까지 봐야 하는 건지 후후.
그럼.. 미리 감사드립니다 으휴 힘들어라.
저도 쓰는 query만
저도 쓰는 query만 쓰다보니 이런 것은 잘 모르겠어요. 궁금합니다.
예를 들면 여러개 테이블 드롭하는데, prefix 기준으로 처리하려고 합니다. 테이블 명을 하나하나 쳐야 할까요.. orz
맞습니다!
그런 경우도 비슷합니다. LIKE 어저고도 해 보앗는데 그런건 안 먹히더군요.
ALTER TABLE LIKE `%ab%` ... ... ... ;
이런 식이엇는데... 테이블/DB명에는 저런게 안 되더군요... LIKE가 들어가니까 그 부분 부터 아예 오류가 잇다고 멍멍거리네요.
MySQL 메뉴얼의 서브쿼리 부분 인가를 좀 봤는데 좀... 후후... 좀더 봐야 겠습니다. 한번 연구 해 보고 다시 오겠습니다. 근대 말씀이죠. 혹시 누구 아시는 분 잇으시거나 이런거 궁금해서 연구 하고 계신 분들 답 나오면 좀 적어 주세요. 정 안 되면 좀 구려도 스크립트라도 만들어 놓으렵니다. 귀찮아서요 으으.
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)
사람천사
euckr 로 바꾼다는것은
euckr 로 바꾼다는것은 현재 latin1 이라는 것인가요?
MySQL 5.0 이상이면
mysqldump --default-character-set=latin1 으로 db 별로 덤프뜨고,
덤프 내용 맨 위에 SET NAMES euckr; 넣고
CHARACTER SET=latin1 을 euckr 로 모조리 바꾸고
집어넣으면 되겠습니다.
emerge money

https://xenosi.de/
흠흠...
문제는...
latin1로 된 것에 utf8로 된 데이터가 들어 있다던가 하면 상당히 문제가 시ㅐㅇ긴다는 것입니다 그런 방법은... 으으.. 그게 문제죠... 데이터 넣으면 UNIQUE나 PRIMARY KEY가 중복 되지도 않앗는데 중복 된다고 나온다거나 하는 문제점이 발생합니다. 이럴 경우 해결책... 따로 없다고 봐야... 으으.. 뭐 제 실력 부족이라고 생각 하겠습니다 이것도 후후.
혹시 이건 안 되나요?
ALTER TABLE (SELECT (SHOW TABLES) AS `tbls`) CHARSET=euckr;
서브 쿼리에 대한 내용을 잠시 보고 왔는데 저거 SHOW문도 되는거 같진 않은데 모르겠군요 으으. 지금 새로 까는 중이라 MySQL을.. 실험은 좀 잇다 해 보던지 해야 겠네요. 근대 결과가 무서워서. 으윽.
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)
사람천사
댓글 달기