๐ซ
์ผ์ ๊ด๋ฆฌ API๋ฅผ ๊ตฌํํ๋ฉฐ ๊ฒช์ ๋ฌธ์ ์ ๊ณผ ํด๊ฒฐ๋ฐฉ๋ฒ, ์๋ก ์๊ฒ๋ ์ ์ ๊ธฐ๋กํฉ๋๋ค.
timestamp์ datetime์ ๋ชจ๋ ์๋์ผ๋ก ์ด๊ธฐํ๋๋๋ก ์ค์ ํ ์ ์์ผ๋ฉฐ, ํ์ฌ ์๊ฐ(CURRENT_TIMESTAMP)์ผ๋ก ์
๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๋ค.
ALTER TABLE schedule MODIFY COLUMN regDate timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '๋ฑ๋ก์ผ';
ALTER TABLE schedule MODIFY COLUMN modDate timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL COMMENT '์์ ์ผ';
ALTER TABLE user MODIFY COLUMN regDate timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '๋ฑ๋ก์ผ';
ALTER TABLE user MODIFY COLUMN modDate timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL COMMENT '์์ ์ผ';

โ๏ธ [deprecated] explicit_defaults_for_timestamp : MySQL timestamp default ์ต์

'OFF' ์ผ ๊ฒฝ์ฐ nullable ๋ก ์ ์ธ๋์ง ์์๋ค๋ฉด, ์๋์ผ๋ก NOT NULL ๋ก ์ ์ธํ๊ณ NULL ์ ์ธ์ํธํ๋ฉด ์๋์ผ๋ก CURRENT_TIMESTAMP ๊ฐ ๋ค์ด๊ฐ๋๋ก ์ค์ ํ๋ ์ต์
์ด์์ผ๋ deprecated ๋์๋ค.
๐ฉ DDL ๋ก timestamp ์ปฌ๋ผ์ ์ ์ฝ์กฐ๊ฑด์ ์ง์ ์ค์ ํด์ผ๋ง ํ๋ค.
| column | constraints |
|---|---|
| ts1, dt1 | X |
| ts2, dt2 | NOT NULL, DEFAULT CURRENT_TIMESTAMP |
| ts3, dt3 | NOT NULL, DEFAULT CURRENT_TIMESTAMP, ON UPDATE CURRENT_TIMESTAMP |
| ts4, dt4 | DEFAULT CURRENT_TIMESTAMP |

DEFAULT CURRENT_TIMESTAMP ์ ์ฝ์กฐ๊ฑด์ด ์๋ ์ปฌ๋ผ์ ํ ์ถ๊ฐ ์ ํด๋น ์๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค. (๋จ, nullable ์ธ ์ปฌ๋ผ์ null ๊ฐ์ผ๋ก ์ถ๊ฐํ๋ฉด ์๋์ผ๋ก ์ด๊ธฐํ๋์ง ์๋๋ค. โ ts4, dt4)
โ ๏ธ NOT NULL ์ ์ฝ์กฐ๊ฑด์ด ์๋ ์ปฌ๋ผ์ null ์ insert ํ๋ ๊ฒฝ์ฐ, SQL Error ๋ฐ์


ON UPDATE CURRENT_TIMESTAMP ์ ์ฝ์กฐ๊ฑด์ด ์๋ ์ปฌ๋ผ์ ํ ์์ ์ ํด๋น ์๊ฐ์ผ๋ก ์๋ ์
๋ฐ์ดํธ ๋๋ค.
โ (2025-02-04 ์์ ) JPA๋ฅผ ์ฌ์ฉํ๋ค๋ฉด DB์์ CURRENT_TIMESTAMP ๋ฅผ ์ด์ฉํ ๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฑ / ์์ ํ๋ ๋ฐฉ์์ ์ง์ํด์ผ ํ๋ค.
BaseEntity ์ @CreateDate, @LastModifiedDate ์ด๋
ธํ
์ด์
์ผ๋ก ์์ฑ์ผ์์ ์์ ์ผ์๋ฅผ ์์ฑ โ ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ฃผ์ฒด๊ฐ Java๊ฐ ๋๋ค.
๐ญ JPA๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ Java์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋๋ก ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ์. CURRENT_TIMESTAMP ์กฐ๊ฑด์ ์ฐธ๊ณ ์ฉ์ผ๋ก ์์๋์.