Tomato Basil
5-4. 테이블 생성, 디비 연동, timezone 생성 (타임존설정오류오류오류) 본문
MySQL 워크벤치 - GUI 방식으로

MySQL 워크벤치를 다운로드 해주었다.
테이블 생성하기

GUI 방식으로 스키마를 만들기 위해
스키마 창에서 Create Schema를 선택한다.

그리고 코드가 아니라 더블클릭(..)을 해서
직접 테이블 속성을 추가/수정 해준다.
위는 users 테이블이다.
아래는 channels 테이블이다.
foreign key인 user_id를 user 테이블의 id를 참조하도록 설정했다.



테이블에 데이터 추가하기

위와 같이 각 테이블의 오른쪽의 그리드 표시를 누르면
새로운 레코드를 추가할 수 있게 된다.

이렇게 추가해보았다.
id는 직접 적거나, auto increment를 적용시키면 되는데
두 방법 중 하나를 처음부터 끝까지 고수하는 것이 좋다.
데이터베이스 연동하기

python에서 mysql과 연동하기 위해 pysql을 사용했던 적이 있는데,
그것과 비슷한 용도인 것 같다.
npm 웹사이트를 참고해서 mysql2를 다운받았다.

VSCode의 터미널창에서 다운받았다.

그리고 First Query의 해당 부분을 복붙해왔다.

실행을 해보면, 디버그 콘솔창에 디비에서 가져온 정보가 잘 출력이 된다.
하지만 나는 json 형태로 출력이 되지는 않는데, 왜 그런 것일까??....
created_at 속성 추가

TIMESTAMP 속성을 가지는 created_at 열 하나를 생성했다.
기본값을 CURRENT_TIMESTAMP() 혹은 NOW로 설정하면 레코드 생성 시점이 created_at에 기록된다.

새로운 레코드를 created_at 을 공란으로 두고 만들었는데
apply하고 실행을 하니까 자동으로 생성 시점이 created_at에 기록되었다.
그런데 MySQL workbench 에서 실행 시 기록되는 생성 시점과
.js 파일에서 mysql2 모듈을 이용하여 디비와 연동할 때 기록되는(VSCode에 출력되는) 생성 시점이 다르다.
SET GLOBAL time_zone = 'Asia/Seoul';
따라서 위 라인을 MySQL에 먼저 적용시켜본다.
'DataBase' 카테고리의 다른 글
| mysql 오류 해결하기 (4) | 2024.10.04 |
|---|---|
| 5-5. DB 모듈화, 회원가입, 로그인, INSERT, DELETE, 리팩토링 | 6-1. 유효성 검사, userId, name, return, err, update, delete (0) | 2024.05.13 |
| 5-2. 5-3. DBMS, RDBMS, 데이터 중복, 정규화, 테이블 분리 (0) | 2024.05.07 |
| 3-1. 백엔드 기초, API (1) | 2024.04.22 |