MySQL sequence 작성 및 사용

ACAI BERRY DEVELOVER·2023년 1월 10일
0
CREATE TABLE SEQUENCES ( NAME VARCHAR(32), CURRVAL BIGINT UNSIGNED) ENGINE = InnoDB;


DELIMITER $$ 
	CREATE PROCEDURE create_sequence (IN the_name text) 
		MODIFIES SQL DATA
        DETERMINISTIC
        BEGIN
			DELETE FROM sequences WHERE name = the_name;
            INSERT INTO sequences VALUES(the_name, 0);
		END
        
        
DELIMITER $$ 
	CREATE FUNCTION nextval  (the_name VARCHAR(32)) 
		RETURNS BIGINT UNSIGNED
        MODIFIES SQL DATA
        DETERMINISTIC
        BEGIN
			DECLARE ret BIGINT UNSIGNED;
            UPDATE sequences SET currval = currval +1 WHERE name = the_name;
            SELECT currval INTO ret FROM sequences WHERE name = the_name LIMIT 1;
			RETURN ret;
		END
 
 
 CALL create_sequence('Test');
 
 
 SELECT nextval('Test') FROM DUAL;
 
 
 
 CREATE TABLE tbl_reply (
	
    rno INT,
    bno INT not null,
    reply VARCHAR(1000) not null,
    replyer VARCHAR(50) not null,
    replyDate DATETIME default current_timestamp,
    updateDate DATETIME default current_timestamp
	
    );
    
    
    ALTER TABLE tbl_reply add constraint pk_reply primary key(rno);
    
    ALTER TABLE tbl_reply add constraint fk_reply_board foreign key (bno) references tbl_board (bno);
    
    
    
   

https://proudin.tistory.com/28 여기 참고

profile
쓸때 대충 쓰지 말고! 공부하면서 써!

0개의 댓글