테이블명을 바꾸는 쿼리문이,
# alter table 원본테이블이름 rename 변경할테이블이름;
이렇게 한다는 건 알지만, 변경할 원본 테이블이 여러개일 경우는 어떻게 하는지 모르겠습니다.
phpmyadmin 툴을 사용해서 선택해서 바꾸는 건 알겠지만,
쿼리문으로 검색해서 찾아서 바꾸는 걸 모르겠습니다.
test1xe_*, test2xe_*, 등 여러개의 프리픽스들 중에서 'testxe_'로 시작하는 테이블을 찾아서
찾은 결과테이블들 모두 'testoldxe_'로 바꾸고자할 땐 어떻게 하나요?
찾아봤는데 이런 글이 있더라고요.
> show tables 쿼리를 통해 테이블목록을 얻어온후 이 결과값을 가지고 루프를 돌려
> 현재의 테이블명을 $old_table_name 변수에 저장하고
> G5_TABLE_PREFIX 부분만 변경한뒤 변경된 이름을 $new_table_name 과 변경한후
> ALTER TABLE $old_table_name RENAME $new_table_name 쿼리를 실행해 변경하면 됩니다.
여기서 show tables 전체가 아니라, 내가 원하는 테이블만 검색하는 것과
검색한 결과를 $old_table_name 변수로 저장하는 방법을 모르겠습니다;ㅁ;
testxe_ 를 testxe2_ 로 바꿀려고 하는데 잘못된 부분이 있나요?;
다른 방법으로,
SET @database = "php1";
SET @old_prefix = "testxe_";
SET @new_prefix = "ttttxe_";
SELECT
concat(
"RENAME TABLE ",
TABLE_NAME,
" TO ",
replace(TABLE_NAME, @old_prefix, @new_prefix),
';'
) AS "SQL"
FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;
이렇게 했는데...변경한 결과값이 표시는 되는데,
실제 변경은 안되는데 왜 그런지 아시나요..
https://sir.kr/qa/145401 - phpmyadmin으로 한꺼번에 선택해서 프리픽스 변경하는 방법
https://xe1.xpressengine.com/tip/21154478
SET @old_prefix = "ttttxe_";
SET @new_prefix = "testxe_";
SELECT @query :=
concat(
"RENAME TABLE ",
TABLE_NAME,
" TO ",
replace(TABLE_NAME, @old_prefix, @new_prefix),
';'
) AS "SQL"
FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;
prepare s from @query;
execute s;
이렇게 하면 변경은 되는데 한번씩 밖에 안되네요 ㅠ