1. 시퀀스 테이블 생성 (변경하는것 없이 그대로 실행) Show CREATE TABLE sequences ( name varchar(32), currval BIGINT UNSIGNED ) ENGINE=InnoDB; 2. 시퀀스 프로시저 생성(변경하는것 없이 그대로 실행) 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 3. nextval function 생성(변경하는것 없이 그대로 실행) 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 4. 시퀀스명 입력 및 0값 넣기 ('Statistics_seq' 대신 원하는 시퀀스 명을 넣을 것) INSERT INTO sequences VALUES ('Statistics_seq', 0); 5. nextval 값 가져오기 ('Statistics_seq' 대신 생성한 시퀀스 명을 넣을 것) select nextval('Student_seq') as Student_seq from dual; * 시퀀스를 하나 생성한 후 추가로 시퀀스를 생성할 시 3번부터 진행하시면 됩니다. @ 시퀀스 생성 방법은 하기의 내용 처럼 이쁜우리님 티스토리에서 가져왔습니다. mariadb sequence 생성 및 사용 예제
mariadb sequence 생성
위와 같이 sequence를 생성 해봤습니다. 이젠, 이렇게 sequence를 생성 하였으니 사용 하는 방법도 있겠죠. mariadb sequence nextval 출력먼저, sequence의 다음값을 출력하는 방법입니다.
위 명령어로 다음 sequence 값을 출력 할 수 있습니다. 1,2 가 출력이 잘 되었습니다. mariadb sequence lastval 출력다음은 지금 sequence가 몇번인지를 확인 하는 방법 입니다.
위 명령어로 지금값을 확인 할 수 있죠. mariadb sequence restart마지막은 sequence를 특정 번호에서 시작 할 수 있게 하는 방법입니다.
위와 같이 sql문을 실행 하고, 다시 nextval을 호출 해 볼께요. 자, 오늘은 이렇게 mariadb의 sequence에 대해서 확인 해 봤습니다. 감사합니다!! by.sTricky int(11) auto increment 최대 4294967295 이후에는 error unsigned BIGINT 최대 18446744073709551615 까지 사용 가능 -- 테이블의 상태 확인 show table status where name='T_HADOOP_LATEST_METRICS'; +-------------------------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +-------------------------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+ | T_HADOOP_LATEST_METRICS | InnoDB | 10 | Compact | 18124 | 144 | 2621440 | 0 | 7913472 | 4194304 | 4294967295 | 2017-11-06 13:57:16 | NULL | NULL | utf8_general_ci | NULL | | | +-------------------------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+ 1 row in set (0.00 sec) -- 시퀀스 조회 (20억 이상) SELECT table_name,table_comment,table_schema,table_type,engine, version,row_format,table_rows,avg_row_length,data_length, max_data_length,index_length,AUTO_INCREMENT,create_time,table_collation, CEILING((data_length+index_length)/1024/1024) AS total_mb, CEILING((data_length)/1024/1024) AS data_mb, CEILING((index_length)/1024/1024) AS index_mb FROM information_schema.tables WHERE table_schema='cloumon' and Auto_increment > 2000000000 ORDER BY Auto_increment DESC ; +-------------------------+---------------+--------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+----------------+---------------------+-----------------+----------+---------+----------+ | table_name | table_comment | table_schema | table_type | engine | version | row_format | table_rows | avg_row_length | data_length | max_data_length | index_length | AUTO_INCREMENT | create_time | table_collation | total_mb | data_mb | index_mb | +-------------------------+---------------+--------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+----------------+---------------------+-----------------+----------+---------+----------+ | T_HADOOP_LATEST_METRICS | | cloumon | BASE TABLE | InnoDB | 10 | Compact | 18628 | 140 | 2621440 | 0 | 7913472 | 4294967295 | 2017-11-06 13:57:16 | utf8_general_ci | 11 | 3 | 8 | | T_HOST_LATEST_METRICS | | cloumon | BASE TABLE | InnoDB | 10 | Compact | 17253 | 92 | 1589248 | 0 | 3178496 | 4294967295 | 2017-11-06 13:57:18 | utf8_general_ci | 5 | 2 | 4 | | T_HBASE_LATEST_METRICS | | cloumon | BASE TABLE | InnoDB | 10 | Compact | 14489 | 182 | 2637824 | 0 | 8454144 | 4142014594 | 2017-11-06 13:57:17 | utf8_general_ci | 11 | 3 | 9 | | T_MR_LATEST_METRICS | | cloumon | BASE TABLE | InnoDB | 10 | Compact | 3402 | 105 | 360448 | 0 | 1081344 | 2501997189 | 2017-11-06 13:57:20 | utf8_general_ci | 2 | 1 | 2 | +-------------------------+---------------+--------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+----------------+---------------------+-----------------+----------+---------+----------+ 4 rows in set (2.59 sec) -- 시퀀스 초기화 use cloumon; alter table T_HADOOP_LATEST_METRICS auto_increment=1; alter table T_HOST_LATEST_METRICS auto_increment=1; alter table T_HBASE_LATEST_METRICS auto_increment=1; alter table T_MR_LATEST_METRICS auto_increment=1; |