목표: 메인클래스인 AuthApplication.java을 실행시켜서 서버를 키고 싶음
Caused by: java.sql.SQLSyntaxErrorException: Incorrect table definition; there can be only one auto column and it must be defined as a key
CREATE TABLE `USER` (
`userId` int PRIMARY KEY,
...
);
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userId;
→ 이 조합은 말이 안된다.
AUTO_INCREMENT는 반드시 PRIMARY KEY + AUTO_INCREMENT가 같이 있어야함.
DROP TABLE IF EXISTS USER;
CREATE TABLE `USER` (
`userId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`userPassword` VARCHAR(255) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`userNickname` VARCHAR(255),
`birthDate` DATE,
`gender` VARCHAR(255),
`phoneNumber` VARCHAR(255),
`readingTaste` VARCHAR(255),
`profileUrl` VARCHAR(255),
`userEmail` VARCHAR(255) NOT NULL UNIQUE
);
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userId;
@Column(nullable = false)
private String userPassword;
@Column(nullable = false)
private String name;
@Column(nullable = false, unique = true)
private String userEmail;
→ 근데도 안된다!! 왜지? SQL을 수정하고 내가 테이블을 build를 안했을까?
: 테이블이 꼬여있거나 남아있을 경우
DROP TABLE USER;걍 다 필요없고 확인해보니까 내 qnb_database이 애초에 비어있었다…그러니 당연히 오류가 나지