CREATETABLE posts ( id SERIALPRIMARYKEY,-- INT + SEQUENCE 자동 생성 big_id BIGSERIAL PRIMARYKEY,-- BIGINT + SEQUENCE 자동 생성 title VARCHAR(200));
-- GENERATED ALWAYS: 직접 값 삽입 불가CREATETABLE posts ( id INTEGER GENERATED ALWAYS ASIDENTITYPRIMARYKEY);-- GENERATED BY DEFAULT: 직접 값 삽입 가능 (마이그레이션 등에 유용)CREATETABLE posts ( id INTEGER GENERATED BYDEFAULTASIDENTITYPRIMARYKEY);
CREATE SEQUENCE order_seq
STARTWITH1000 INCREMENT BY1NO MAXVALUE
CACHE 10;-- 한 번에 10개씩 미리 생성 (성능 향상)-- 사용SELECT nextval('order_seq');SELECT currval('order_seq');
// IDENTITY 전략 (SERIAL/GENERATED ALWAYS AS IDENTITY 사용)@Id@GeneratedValue(strategy =GenerationType.IDENTITY)privateLong id;// SEQUENCE 전략 (시퀀스 객체 직접 사용 - 배치 삽입에 유리)@Id@GeneratedValue(strategy =GenerationType.SEQUENCE, generator ="post_seq")@SequenceGenerator(name ="post_seq", sequenceName ="post_id_seq", allocationSize =50)privateLong id;