반응형

시퀀스 3

db 시퀀스 생성

새로운 프로젝트의 db설계를 하면서 각 테이블의 시퀀스를 생성하는 일이 생겼다.처음에는 그냥 예전부터 하던것 처럼 함수를 사용해서 고유값을 생성하려고했다.CREATE OR REPLACE FUNCTION FN_KM_GET_CODE ( p_table_name IN VARCHAR2)RETURN VARCHAR2IS v_seq_val NUMBER; v_new_id VARCHAR2(200);BEGIN IF p_table_name = 'T_TABLE1' THEN SELECT TABLE1_SEQ.NEXTVAL INTO v_seq_val FROM DUAL; v_new_id := 'T1_' || TO_CHAR(v_seq_val); ELSIF p_table_name = '..

DB/Oracle 2025.06.27

mysql 시퀀스

오라클만 사용하다보니 mysql을 사용할 일이 거의 없어서 몰랐는데mysql에는 seq.nextval이 없었더라...그래서 찾아보니 함수로 만들수 있었다.단계는 4단계였다.시퀀스용 테이블 생성시퀀스 생성 프로시저 생성생성한 시퀀스의 다음 값 가져오는 함수 생성시퀀스를 생성 할 프로시저 실행이렇게 하면 이제 nextval 이라는 이름의 함수를 사용할 수 있게된다.만들어보자 시퀀스용 테이블 생성create table T_SEQ( NAME varchar(32), CURRVAL BIGINT UNSIGNED)ENGINE = InnoDBcomment '시퀀스용테이블';저기서 NAME을 기준으로 시퀀스가 배정된다.​2. 시퀀스 생성 프로시저 생성DELIMITER $$CREATE PROCEDURE `create_seq..

DB/MySql 2024.05.19

테이블 LOCK

작업을 하는데 특정 테이블의 update가 안되는 이슈가 있었다. 단순 오류가 아니라 update 쿼리 실행시 db가 그대로 잠겨 페이지 또한 올라오지 않았다. 원인을 먼저 찾아보기위해 세션을 확인하기 위한 쿼리를 실행했다. SELECT A.USERNAME AS 계정명, A.SCHEMANAME AS 스키마명, A.STATUS AS 활성화여부, A.SID AS 세션식별자, A.SERIAL# AS 시리얼번호, A.MACHINE AS OS머신명, A.PROGRAM AS OS프로그램명, A.TYPE AS 세션타입, A.LOGON_TIME AS 세션로그인날짜, B.FIRST_LOAD_TIME AS 처음실행한시각, B.SQL_TEXT AS 실행쿼리, C.TYPE AS 락타입 FROM V$SESSION A, V$SQ..

DB/Oracle 2024.04.16
반응형