안녕하세요.
http://www.gurubee.net/article/69134 이글을 참조하여 따라해보고 있습니다.
두가지 궁금한점이 있는데요. 첫번째는 위와 같은 방식으로 했을때 파일이 대용량일때 문제가 없는지 궁금합니다.......
그리고 테이블을 똑같이 만들고 MySql로 만들어보고 있는데요
아래의 쿼리 || '\'|| <--이 부분에서 에러가 나는것 같은데요....mysql은 아래 쿼리를 어떻게 수정해야 될까요?
1 2 3 4 5 6 7 8 9 10 11 12 13 | WITH RECURSIVE cte_table(directory_id, directory_name, directory_id_ref, full_path) AS ( select directory_id, directory_name, directory_id_ref, directory_name as full_path from directory WHERE directory_id_ref is null union all select a.directory_id, a.directory_name, a.directory_id_ref, cast (b.full_path || '\'|| a.directory_name as varchar (100)) from directory a inner join cte_table b on (a.directory_id_ref = b.directory_id) ) select * from cte_table |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Mysql 에서 CAST 함수로 변환할수 있는 타입은 아래라고 하네요 1. BINARY 2. CHAR 3. DATE 4. DATETIME 5. TIME 6. DECIMAL 7. JSON (MySQL 5.7.8부터 제공됨) 8. NCHAR 9. SIGNED [ INTEGER ] 10. UNSIGNED [ INTEGER ] 그리고 이미 VARCHAR 타입인데 캐스팅을 굳이 할 이유가 있나요, 만약 한다고 하면 cast (CONCAT(b.full_path , '\\' , a.directory_name ) as CHAR ) 또는 cast (CONCAT(b.full_path , CHAR (92), a.directory_name ) as CHAR ) 가 됩니다. |