예를 들어 회원기입시, 저장일시 컴럼이 기본값을 now()로 지정하여,
9.x버전였을때는 그컬럼에 값을 안넣으면(null), 자동으로 현재일시가 저장이 됐었는데, 17버전으로 백업한걸 복원시킨후 프로그램을 실행시키니 값이 없다고 오류가 나네요.
db쿼리로 해도 마찬가지입니다.
뭘 해줘야 기존처럼 될까요..
default 관련해서 바뀐 것이 없으니,
일단
psql 로 접속해서
해당 테이블의 \d 결과를 살펴보세요.
\d 해당테이블
여기 default가 빠졌으면 업그레이드 과정에서 문제가 있었던거고,
그렇지 않다면, insert 구문에 문제가 있었던것일겝니다.
디폴트는 now() 그대로 복원됐습니다.
전 버전에서는 저장일시 컬럼에 null을 넣으면 자동으로 현재일시가 저장됐었는데,
17버전으로 업한후에는 null은 안된다는 에러를 띄우네요.
자동증가값도 마찬가지입니다. ㅜ.ㅜ
아, 표준이, default가 있을 때, null 이 입력되면, default로 처리하는 것이 아니라, null 처리하는거라서 바뀐 것일거에요.
default를 입력하고 싶다면, 키워드가 null 이 아니라, default 입니다.
ioseph=> insert into t values (1, default);
INSERT 0 1
ioseph=> select * from t;
+---+----------------------------+
| a | b |
| 1 | 2025-05-14 16:48:25.155773 |