Database/MySQL 4

MySQL) 에러 Before start of result set

result set의 시작 전 오류. 이게 무슨말일까.. 하고 찾아보니 rs = pstmt.executeQuery(); topName = rs.getString(1); 위의 문장때문이었다. select 쿼리 결과가 ResultSet 형태로 반환되는데, select 쿼리 결과가 100%있을거라 생각하고 rs.next()를 삭제한 것이다. 하지만, select구문이 제대로 실행안될 수도 있고, resultSet은 cusor point를 반드시 다음으로 옮겨야 데이터를 읽어올 수 있다. 따라서 rs.next() 함수가 빠졌으면 적어야한다. rs = pstmt.executeQuery(); if(rs.next()) { topName = rs.getString(1); }

Database/MySQL 2022.04.08

MySQL) 외래키를 걸었는데, 제약조건이 따라온 경우 문제해결.

User 테이블에 userid 컬럼이 있고, 이 컬럼에는 not null과 unique 제약조건을 걸었다. Notice 테이블에 userid컬럼이 있고, User테이블의 userid와 외래키를 걸었다. 그런데.... 외래키를 걸었더니 User테이블의 userid제약조건인 nn과 unique를 그대로 들고와서 걸렸다. 게시판에는 한 유저가 많은 글을 쓸 수 있어야 하는데 unique가 걸려서 한 유저당, 하나의 글밖에 못쓰는 상황이 된 것이다. 따라서 위의 사진에서 unique에 체크 표시를 풀고 Apply버튼을 눌렀지만 승인되지 않았다.. 구글링을 해도 Foreign key와 unique관계를 뚜렸하게 설명하는 글을 찾기 힘들었다. MySQL을 배운지 얼마되지 않아서 봐도 이해를 못한것일 수도..ㅎㅎ 외..

Database/MySQL 2022.03.24

MySQL) MySQL varchar 한글 글자 수? 바이트? 알아보기

MySQL 버전에 따라 varchar 데이터 타입을 지정할때 괄호()안에 제한을 바이트 단위로 계산해야하는지, 한글 한글자로 계산해야되는지 헷갈렸다. 구글링 해보니 MySQL 4.1버전부터 byte단위가 아닌 character 단위로 바뀌었다는 말이 있는데 혹시 몰라 확실히 하기 위해 직접 테이블을 생성해서 확인해봤다. 나는 현재 8.0버전을 사용중이다! 임시 테이블 생성하기 한글 확인만을 위한거니 name컬럼 하나만ㅎㅎ.. create table temp ( name varchar(3) null ); 값 넣어보기 insert into temp(name) values('가나다'); insert into temp(name) values('가나다라'); varchar(3) 으로 지정했는데 '가나다'는 잘 들..

Database/MySQL 2022.03.24

MySQL) MySQL 설치 다운로드

1. 페이지로 이동해서 다운로드 1) https://www.mysql.com/ 에 접속하여 상단의 Downloads 클릭 2) 하단의 MySQL Community (GPL) Downloads 클릭 3) 나중에 체크표시되있는거 3개 다 필요한데, 우선 제일 아래에 MySQL Installer for Windows을 다운받는다. 4) 두번째꺼 다운로드. 32-bit는 내 컴퓨터가 64bit여도 상관없으니 다운받아도된다. 5) 로그인 하라고 나오는데 밑에 no thanks 하면 그냥 다운받을 수 있다. 2. 다운로드 받은 설치파일 실행 1) Choosing a Setup type : 기본 Developer Default 2) 계속 Next -> Execute 눌러서 설치 Execute를 누르면 동그라미에 초록..

Database/MySQL 2022.03.02
반응형