개발을 하다보면 db sql import 할 일이 생긴다. 그냥 쿼리문을 하이디 sql 등에서도 할 수 있지만 빠르게 여러건 한다거나 콘솔에서만 작업해야 할 때 사용하면 좋다. 일단 sql 파일이 있어야 하니 sql 파일을 올린다. putty 등에 접속할때 디폴트로 나오는 곳에 올리면 좋다. 따로 경로 입력안해도 되니.. 그런 다음 mysql -u아이디 -p패스워드 디비명 < a.sql 하면 바로 임포트가 된다. 패스워드를 입력안하고 -p 만 써도 된다. 그럼 Enter password: 가 나오고 패스워드를 매번 입력해줘야 하니 그냥 본인이 작업할거면 패스워드 입력해서 해도 별 무리 없을 듯.. 만약 패스워드를 본인외에 아무도 몰라야 하는 상황 이라면 할 수 없고.. 암튼 위와 같이 하면 바로 impo..
특정 화면이 30초 이상 느리게 나왔다. 왜 그러지.. 삽질 시작! 일단 가장 의심이 되는게 쿼리다. 머 대부분 그런듯.. 느릴때 당황하지말고.. 당황하면 궤변만 늘어놓기 때문에.. 서로 시간 낭비다. 당황스럽겠지만 당황하지말고 원인을 찾고 해결하면 된다. 사실 원인만 찾으면 해결은 쉽게 되는 편이다. 무슨일이든 그렇듯.. 특정 화면만 들어가면 CPU도 100% 가까이 친다. 쿼리만 뽑아서 실행해봤더니.. 역시나 느리다. 증상이 재현되니 그나마 다행. 로컬에서 재현되는게 가장 좋다. 그럴려면 구성을 잘해야 하고 동기화도 항상 해놔야 된다. 자 그럼 실행계획으로 원인을 잡아본다. 실행계획이 어려운지 알았는데 그냥 explain 만 쿼리 상단에 붙여주면 된다. analyze 를 붙여주는 방법도 있다. exp..
SET @rownum:=0; SELECT @rownum:=@rownum + 1 as rNum, t1.* FROM TABLE_NAME t1 ; 하이디 sql 등 db 툴에서 쿼리만 실행할때 rNum이 잘 안나올 수 있다. NULL이나 1번부터 시작이 아닌.. 왜그런가 봤더니 세미콜론으로 2개의 쿼리가 있어서 그랬다. 프로그램에서 mybatis 안에 쿼리가 있을때는 한번에 실행이 되겠지만 하이디sql 등에서 세미콜론에 있는 쿼리만 실행하는 (현재 쿼리 실행) ctrl + shift + F9 를 누르면 잘 안될 수 있다. SET 부분이 실행이 안되고 SELECT에 커서를 두고 실행한 경우.. 그래서 SET 부분도 같이 실행이 되야 하니 그냥 실행 F9를 눌러서 하면 잘 된다. 그리고 join 및 정렬 ORDE..
마리아 db를 사용하다 보면 사용자를 새로 만들어야 할 일이 생긴다. 일단 마리아 db에 접속을 한다. 관리자 계정 id는 ss, 패스워드는 ss 추가할 사용자 id는 suser, 패스워드 suser 라고 해보자. mysql -uss -p 하면 Enter password: 라고 나오고 패스워드를 입력한다. 그러면 마리아 db에 접속이되고 Welcome to the MaridDB monitor. ... MariaDB [(none)]> 계정이 옯바르다면 이렇게 마리아 DB 프롬프트로 바뀔 것이다. 어떤 데이터 베이스가 있는지 보자 show databases; 어떤 사용자가 있는지 보자 select host, user from mysql.user; 사용자를 생성해 보자 create user 'suser'@'%..
마리아 db 쿼리를 짜다가 이상한 현상을 발견했다. 특정 컬럼(check_mm)에 NULL하고 'N' 등이 섞여 있었다. where 절에 check_mm='N' 하니 N 값인것만 잘 나왔다. 하지만.. N이 아닌것을 뽑아내려고 check_mm!='N' 했더니 NULL로 들어가 있는 데이터들이 안나오는 것이였다.. 이런.. 할 수 없이 ifnull을 사용해서 null 처리를 한번 한 후 바깥쪽에 select를 한번 더 사용해서 N이 아닌 row들을 추출할 수 있었다.
마리아 db insert 쿼리를 실행하려고 했는데 SQL 오류 (1136): Column count doesn't match value count at row 1 이런 에러가 발생했다. 흠.. 뭐지.. 알고보니.. 머 답이 다 나와 있지만 해석해보면 컬럼 갯수가 value 구문의 갯수와 맞지 않다. 그래서 갯수를 세어보니 insert into AA () values (); 앞의 컬럼 갯수가 values 갯수보다 1개가 많았다..
마리아db 에서 프로시저를 수정해야할 일이 생겼다. 흠.. 어떻게 해야하지.. 하이디 sql에서 프로시저에 마우스 우클릭 하니 데이터베이시를 SQL로 내보내기가 있었다. 해보니.. CREATE PROCEDURE '프로시저명' 라고 나왔다. 흠.. 나는 수정을 해야 하는데.. 구글링을 해보니 CREATE OR REPLACE PROCEDURE '프로시저명' 이렇게 나와서 실제로 해보니 수정이 되었다. 결국은 마리아db 프로시저 수정하려면 CREATE OR REPLACE 를 하면 된다. 문득 수정만 할거니 REPLACE 만 쓰면 될까 해서 한번 해보니 SQL 오류 (1064): You have an error in you SQL syntax; check the manual that corresponds to ..
마리아 db 에서 key 값이 없으면 insert, key 값이 있으면 update 를 하는 방법을 살펴보자. user 테이블이 있고 user_id가 키라고 하면 insert into user ( user_id, regist_dt ) values ( #{USER_ID, jdbcType=VARCHAR} ,now() ) ON DUPLICATE KEY UPDATE update_dt=now() 이런식으로 user_id가 있으면 update_dt 컬럼에 현재날짜를 넣어주고 없으면 user_id와 regist_dt 컬럼에 값을 insert 한다. ON DUPLICATE KEY UPDATE 를 기억해서 사용하길 바란다.
- Total
- Today
- Yesterday
- XE
- ocpjp
- 이클립스
- 인포믹스
- MySQL
- ocjap
- C
- 자바 셀레니움
- esql
- 자바
- 파이썬
- 문자열
- XE3
- 자바 smtp
- EC
- 프로씨
- C언어
- JDBC
- 오라클
- php
- xe addon
- 포인터
- xe애드온
- Python
- ocajp
- KG
- webix
- 파싱
- 스크래핑
- proc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |