반응형
절차에서 테이블 이름을 쉽게 바꿀 수 있는 방법이 있습니까?
MariaDB 10.1 SQLyog 11.5를 사용하고 있습니다.
아래 쿼리를 사용하여 테이블 이름을 변경했습니다.
ALTER TABLE old_name RENAME new_name
그러나 'old_name'을 참조하는 저장 프로시저가 많이 있습니다.SP 생성 쿼리를 모두 열고 변경했습니다.어느 SP에 old_name 테이블을 참조하는 쿼리가 있는지 알 수 없기 때문입니다.
old_name 테이블을 참조하는 쿼리가 있는 SP를 알 수 있는 방법이 있습니까?
이렇게 하면 저장 프로시저에서 사용할 수 있는 텍스트를 가져올 수 있습니다.
다음 쿼리를 시도해 보십시오(확인되지 않음).
SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%old_name%'
-- AND ROUTINE_TYPE = "PROCEDURE" -- Filter only if need SPs
ORDER BY ROUTINE_NAME;
이 페이지의 참조
다음과 같이 할 수 있습니다.
이름 바꾸기 쿼리 만들기
SELECT CONCAT ('RENAME TABLE ',
GROUP_CONCAT(t.TABLE_SCHEMA,'.',t.TABLE_NAME,' TO ', t.TABLE_SCHEMA,'.',REPLACE(t.TABLE_NAME,'old','NEW') SEPARATOR ' , ')
) INTO @sql
FROM information_schema.TABLES t
WHERE t.TABLE_TYPE = 'BASE TABLE'
AND t.TABLE_SCHEMA IN ('SCHEMA1','SCHEMA2')
AND t.TABLE_NAME LIKE 'old_table%';
확인하기 위해서만
SELECT @sql;
준비 및 실행
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
언급URL : https://stackoverflow.com/questions/37453965/is-there-a-easy-way-to-rename-a-table-in-procedure
반응형
'IT' 카테고리의 다른 글
$에 대한 경고HTTP_RAW_POST_DATA가 폐지되었습니다. (0) | 2022.11.08 |
---|---|
이미 구축된 Vue JS 앱에 매개 변수를 전달하려면 어떻게 해야 합니까? (0) | 2022.11.08 |
문자열의 첫 번째 문자가 숫자인지 확인하려면 어떻게 해야 하나요? (0) | 2022.11.08 |
JPA 빠른 가져오기가 가입되지 않음 (0) | 2022.11.08 |
Java의 split() 메서드는 닷()에서는 동작하지 않습니다. (0) | 2022.11.08 |