Obsidian/Recognition/Programing/MariaDB/테이블 정의서 DB테이블 생성.md

1.9 KiB



/*
1. 테이블정의서 취합
2. 컬럼 정리, No null 확인
3. 맨압 컬럼 seq 순번

*/

truncate table tbl_info 

select *
from tbl_info


update tbl_info 
set seq = tbl_desc


delete
from tbl_info
where tbl_no = 'No'


delete
from tbl_info
where col_id is null 
and tbl_no is null 


select count(*)
from tbl_info

select row_number() over(order by cast(seq as integer)) as rownum, seq -- 시작순번
, nvl(LEAD(seq) OVER(order by cast(seq as integer)), 1867 +1)-1 as next_seq -- 마지막순번
, col_nm, idx
from tbl_info ti 
where tbl_no ='테이블ID(물리명)'
order by cast(seq as integer)

-- tbl id, tbl name
update tbl_info  a,
 (
	select row_number() over(order by cast(seq as integer)) as rownum, seq -- 시작순번
, nvl(LEAD(seq) OVER(order by cast(seq as integer)), 1867 +1)-1 as next_seq -- 마지막순번
, col_nm, idx
from tbl_info ti 
where tbl_no ='테이블ID(물리명)'
order by cast(seq as integer)
	) b
set a.tbl_id = b.col_nm,
    a.tbl_nm = b.idx
where a.seq >= b.rownum
and a.seq <= b.next_seq


-- tbl_desc
update tbl_info  a,
 (
	select row_number() over(order by cast(seq as integer)) as rownum, seq -- 시작순번
, nvl(LEAD(seq) OVER(order by cast(seq as integer)), 1867 +1)-1 as next_seq -- 마지막순번
, col_nm, idx
from tbl_info ti 
where tbl_no ='테이블 설명'
order by cast(seq as integer)
	) b
set a.tbl_desc = b.col_nm
where a.seq >= b.rownum
and a.seq <= b.next_seq


-- user, tblspace
update tbl_info  a,
 (
	select row_number() over(order by cast(seq as integer)) as rownum, seq -- 시작순번
, nvl(LEAD(seq) OVER(order by cast(seq as integer)), 1867 +1)-1 as next_seq -- 마지막순번
, col_nm, idx
from tbl_info ti 
where tbl_no ='데이터베이스명'
order by cast(seq as integer)
	) b
set a.tbl_user = b.idx
, tbl_space  = b.col_nm
where a.seq >= b.rownum
and a.seq <= b.next_seq


delete
from tbl_info
where tbl_no in ('테이블ID(물리명)','데이터베이스명','테이블 설명')