제목 | 모든 테이블, 특정 키워드로 치환 소스 (INFORMATION_SCHEMA) | ||
---|---|---|---|
글쓴이 | 꾸숑 | 작성시각 | 2014/05/16 13:56:55 |
|
|||
거래처의 사업자 상호가 바뀌는 바람에 작업하게 되었습니다. 여러 모로 유용하게 사용될 것 같습니다. 솔찍히 제 소스는 아니고 저희 회사 원팀장님의 소스인데 어디든 올려도 된다고 하시네요^^ 조금이라도 도움 되길 바라고... MySQL의 세계는 깊고 넓은걸 느끼네요! <?php // 모든 테이블, 특정 키워드 치환 set_time_limit(0); error_reporting(E_ALL); header('Content-Type: text/html; charset=utf-8'); echo '<xmp style="font-family:GulimChe;font-size:12px;line-height:100%;">'; $db_host = 'localhost'; $db_name = '*****'; $db_user = '*****'; $db_pass = '*********'; $source = '서연'; $target = '서현'; $conn = mysql_connect($db_host,$db_user,$db_pass) or exit('fail db connect'); mysql_select_db($db_name) or exit('fail db select'); $query = <<<_QUERY_ SELECT concat('UPDATE ',TABLE_NAME,' SET `',COLUMN_NAME,'`=REPLACE(`',COLUMN_NAME,'`,''{$source}'',''{$target}'')') AS query FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='{$db_name}' _QUERY_; $result = mysql_query($query) or exit('fail query - '.mysql_error()); while ( $row = mysql_fetch_assoc($result) ) { // mysql_query($row['query']) or exit('fail query - '.mysql_error()); echo $row['query'].";\n"; } mysql_close(); |
|||
다음글 | Jquery value2 값 (2) | ||
이전글 | Update문 처리 결과로 affected_rows()... (1) | ||
한대승(불의회상)
/
2014/05/16 15:26:12 /
추천
0
|
꾸숑
/
2014/05/16 16:56:04 /
추천
0
넵 상황봐서 그렇게 만들어서 올려 볼게요...!
물론 제가 만드는게 아니라 울 회사 개발팀장님 시켜서 ㅎㅎㅎㅎ |
들국화
/
2014/05/16 17:57:05 /
추천
0
테클은 아니고요... 상호명이 왜 컬럼이름으로 들어가는지 의문이 드네요.
DDL문은 운영중에는 위험할수가 있어서.... 자주 자동으로 쓸게 아니면 그냥 MySQL Client로 Query를 바로 처리하는게 더 좋을것 같네요. concat할 필요도 없고...아무래도 php랑 묶이면(복잡해지면) 에러날 가능성도 늘어나고요... |
한대승(불의회상)
/
2014/05/16 18:00:32 /
추천
0
들국화// 컬럼명에 상호를 넣은게 아니고 모든 테이블 컬럼에 들어 있는 데이타의 상호를 바꾸던데요.
|
들국화
/
2014/05/16 18:01:55 /
추천
0
한대승// 앗~ 그래요? ㅋㅋㅋ 쿼리를 잘못 읽었나 보네요...
|
들국화
/
2014/05/16 18:10:11 /
추천
0
REPLACE였네요... RENAME하고 착각했다는.. 하긴 DDL문은 update가 아닌데... 아... 숙취로 머리가 .. ㅡㅡ;
|
CI helper로 만들어도 좋을듯 싶습니다.