본문 바로가기

mysql

DB tool에서 한글 깨짐현상!! (?????? 물음표로 뜬다) 갑자기 프로시저를 수정했는데 한글이 깨졌다; 그냥 로그찍는 부분 주석만 풀고 저장했을뿐인데....;;;;;;;;;;; 아무것도 설정 안했는데.. 그냥 금요일에 컴퓨터끄고 월요일에 출근했을뿐... 월요일 아침부터 당황스럽다. 결론은 간단했다. 1. 제어판> 시스템 및 보안 > 시스템 > 고급 시스템 설정 환경변수 > 시스템 변수 > 새로만들기 2. 새 시스템 변수 등록 > 확인!(저장) 변수 이름 : NLS_LANG 변수 값 : KOREAN_KOREA.KO16MSWIN949 근데 왜이렇게 된건지는 이유는 모르겠다^ㅠ^ 다들 당황하지말고 저 설정값만 넣어주세요! 더보기
[Mysql] 테이블 구조 복사 / 테이블 데이터 복사 1. 테이블 구조만 복사하는 방법 CREATE TABLE IF NOT EXISTS 복사테이블 LIKE 원본테이블; 2. 테이블 구조, 데이터 다 복사하는 방법 CREATE TABLE IF NOT EXISTS 복사테이블 SELECT * FROM 원본테이블; 3. 데이터만 복사하는 경우 INSERT INTO 복사테이블 SELECT * FROM 원본테이블; 더보기
[Mysql] Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails 🙄 FK 설정하고 DELETE 와 UPDATE를 칠때 나오는 에러 1. 앞으로 계속 FK설정하고도 그냥 연결되어있는 것을 다 DELETE 해버리고 싶을때 on delete cascade 사용 2. 임시방편으로 그냥 잘못넣은 데이터 하나 지우고 싶을때 SET FOREIGN_KEY_CHECKS=0; //잠시 FK설정 풀고 하고싶은 SQL문 실행; SET FOREIGN_KEY_CHECKS=1; //다시 FK설정 등록 더보기
[mysql] datetime 형식 지정하기 DATE_FORMAT() MYSQL에서 날짜를 저장하는 datetime 형식을 사용했다 기본값은 이렇게 ('2021-01-28 11:22:24') 되어있다 값을 불러올때 날짜만 가져오는 등 형식을 지정하고 싶다면 DATE_FORMAT()을 사용하면된다! 써보면 알테지만,,, 🥴 가장 기본인 날짜만 뽑고싶다! : date_format(datetime, '%Y-%m-%d') : 출력값('2021-01-28') SELECT date_format(datetime, '%Y-%m-%d') FROM 'datetest' WHERE id=1; 🥴 중간에 '-'가 없는 '20210128'을 뽑고 싶으면 : date_format(datetime, '%Y%m%d') SELECT date_format(datetime, '%Y%m%d') FROM 'da.. 더보기
[mysql] auto_increment 시작번호 설정 컬럼에 ai(auto_increment) 설정값 줬을때 시작번호를 다시 하고싶다!? alter table 테이블명 auto_increment = 시작할번호; 더보기
[mysql] 구분자로 문자열 자르기(substring_index) substring_index 함수를 사용하면 된다. SUBSTRING_INDEX(문자열, 구분자, 구분자 Index) 예시) SELECT SUBSTRING_INDEX('안녕,나는,줄리엣,이야', ',', 2); /*앞에서 두번째꺼까지*/ >> 안녕,나는 SELECT SUBSTRING_INDEX('안녕,나는,줄리엣,이야', ',', -3); /*뒤에서 세번째꺼까지*/ >> 나는,줄리엣,이야 예시2) 핸드폰 번호가 있는데 cell1 cell2 cell3 으로 나누고싶다 주어진 핸드폰 번호(cell 컬럼) : 010-8888-3333 구분자: "-" select substring_index(cell,"-",1) as cell1, substring_index(substring_index(cell,"-",2),".. 더보기
[mysql] 다른 테이블에서 가져온 데이터 삽입 (insert into select) 속성 몇개만 넣으려면 INSERT INTO 넣을 테이블이름 (넣을 속성이름) SELECT 가져올 속성이름 FROM 가져올 테이블이름 WHERE 조건값; 아예 통채로 넣으려면 INSERT INTO 넣을 테이블이름 SELECT * FROM 가져올 테이블이름 WHERE 조건값; ex) insert into personA select * from personB where name = "김미래" insert into personA (seq, name, age) select seq, name, age from personB where name = "김미래" 더보기
[mysql] 위 아래 행 한번에 구하기 (이전,다음게시판 구하기) select * from 테이블명 where ( seq = IFNULL((select min(seq) from 테이블명 where seq > 받아온 seq값),0) or seq = IFNULL((select max(seq) from 테이블명 where seq < 받아온 seq값),0) ) : 받아온 seq값이란 중간인 행 더보기