MySQl이랑 MariaDB 두개를 학습용으로 사용한다
아무리 써봐도 MySQl이 훨씬 보기도 좋고 편한거 같은데..
nmember 테이블 작성하고
create table nmember(
no int auto_increment primary key,
uid varchar(20),
pass varchar(17) NOT null,
uname varchar(6) not null,
birth date not null,
gender varchar(1),
pnum varchar(20) not null
);
auto_increment를 줬다
여기서 Insert를 하는데 문제가 생겼다
#1
insert into nmember(uid,pass,uname,birth,gender,pnum)
values('idID', 'pass111','김큐','1995-06-17','남','010-111-111');
#2
insert into nmember(uid,pass,uname,birth,gender,pnum)
VALUES('idID1', 'pass111','김큐2','1996-03-13','남','010-2222-111');
#3
insert into nmember(uid,pass,uname,birth,gender,pnum)
VALUES('idID2', 'pass111','김큐3','1997-05-24','남','010-121-131');
#4
insert into nmember
VALUES('idID2', 'pass111','김큐3','1999-05-24','남','010-121-131');
분명 no column은 auto_increment를 줬는데 자꾸
SQL 오류 (1136): Column count doesn't match value count at row 1
이게뜬다
그래서 1,2,3번은 아예 column명을 주고 넣었고 4번은 에러가 자꾸 뜬다
MySQL에서는 잘만 됬는데
아무리 찾아봐도 그냥 1,2,3번처럼 column명을 저렇게 명시하고 Insert를 하고있다...
(GPT님은 계속 괴롭히니까 그냥 지웠다가 다시 깔으라고 하신다)
나중에 시간나면 더 찾아 봐야겠다
재귀복사 하면서 더미데이터를 찍어내다 보니 데이터값이 4만개가 넘어가고 중간에 Delete하고 가지고 놀다보니
no column이 1,2,3,4 다음에 39682가 나와버렸다
보기 싫어서 초기화하는 방법을 찾아봤다
#auto_increment 초기화하기
alter table board auto_increment = 1;
#1번방법 테이블의 시작이 1보다 높으면 안됨
#2번방법 변수지정 해서 update해주기
alter table board auto_increment = 1;
set @count =0;
update board set no = @count := @count+1;
2번방법은 no을 일일이 재지정해주는 방법이라고 한다
- MariaDB에서 JDBC드라이버(Connect/J)
- mariadb-java-client-3.1.3.jar 파일을 받아서
JSP프로젝트명/WEB-INF/lib안에 넣어준다- JSP프로젝트 설정 -> Java buildPath -> Libraries탭 -> Add Exterminal JARs
-> 아까 다운받은 mariadb jar파일을 추가해준다
//JDBC드라이버 로딩(mariadb)
Class.forName("org.mariadb.jdbc.Driver");
//드라이브 매니저에게 Connection객체 요청
//Connection객체을 얻기위해서는 (URL, ID, PASSWORD)필요
//URL -> SQL localHost주소
String url = "jdbc:mariadb://자신의IP주소:3306/sample?
serverTimezone=Asia/Seoul";
String dbUser = "root";
String dbPw = "1234";
MySQL은 IP주소까지는 필요없었는데 MariaDB는 넣어야하나보다..