인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

1-blue님의 프로필 이미지
1-blue

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

해시태그 검색하기

MySQL오류 1064

작성

·

250

0

안녕하세요 항상 답변감사합니다.

지금 좋아요기능모두 구현하다가 생긴 에러때문에 질문드립니다.

일단 좋아요기능을 구현하려면 user-post가 N:M관계라고 생각해서 아래 코드들을 추가했습니다.

db.User.belongsToMany(db.Post, { foreignKey: "like_user_id"through: "Like"as: "Liked" });
db.Post.belongsToMany(db.User, { foreignKey: "like_post_id"through: "Like"as: "Liking"  });

이렇게하면 Like라는 테이블이 생성되는데 이상하게도 cmd나 워크벤치에서 like관련 모든 명령어에서 [1064]에러코드가 출력됩니다. 이리저리찾다가 like를 백틱으로 감싸서 명령어를 넣으면 에러없이 출력되는데 뭐가문제라서 그런걸까요??(저는 underscored: true로 설정해서 column명을 _넣어서 지었습니다.)

제 생각에는 user랑 post가 각각다른 두번의 관계(게시글업로드, 좋아요)를 맺고있어서 그런것같다고 생각합니다. (hashtag-post는 DESC PostHashtag에러없이실행됨 ) 에러의 이유와 해결방안을 알려주시면 감사하겠습니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

어떤 명령어를 쳤는지 예시를 들어주세요. 테이블명이나 컬럼명 칠 때 `Like`.`컬럼` 하는 경우도 있습니다.

지금 생각해보니 like는 mysql 예약어이네요. 그래서 백틱붙여서 테이블명이라는 걸 알려야합니다.

1-blue님의 프로필 이미지
1-blue
질문자

아 like가 예약어였네요...

desc like,    select * from like,    drop from like 이런것들이 모두 안됬는데 예약어여서안됬네요 생각지도못했는데 감사합니다. 테이블명을 수정해야겠네요 감사합니다

1-blue님의 프로필 이미지
1-blue

작성한 질문수

질문하기