- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
목록Database/MySQL (30)
민서네집
나는 HeidiSQL 7.0.0.4392 를 사용 중이다. 가끔 프로그램 오류 창이 뜨지만, 쿼리 결과를 한눈에 보기 편하다. Query 편집창에서 여러 개의 select 쿼리를 써 넣고, F9 키를 누르면, 한꺼번에 실행되면서, 여러 개의 탭으로 select 쿼리의 결과가 나타난다. F9 ☞ Query 편집창의 모든 쿼리를 한번에 실행시키기.Ctrl-F9 ☞ 선택한 영역만 실행시키기.Ctrl-Shift-F9 ☞ 현재 커서가 있는 위치의 하나의 SQL문만 실행시키기. 전에도 사용해 봤는데, SQLyog 프로그램도 좋았다. 상용 프로그램이지만, Free 로 사용할 수 있는 Community 버전도 있다고 한다. https://code.google.com/..
[참고] http://gywn.net/2012/05/mysql-transaction-isolation-level/ 웹어플리케이션에서 MySQL DB를 사용하는데, 트랜잭션을 사용하기 위해서 my.ini 파일에서 [mysqld] autocommit=0 이렇게 설정했다. 그리고 웹어플리케이션을 실행시키고, DB 접속하는 프로그램(나는 HeidiSQL을 사용한다.)을 띄워서 조회를 해봤는데, 웹어플리케이션에서 변경한 사항이 조회되지 않았다. 이것은 MySQL의 Default Transaction Isolation Level 이 REPEATABLE-READ 로 되어 있어서 발생하는 현상이다.현재 트랜잭션이 커밋되지 않은 상태에서는 다른 트랜잭션과 관계없이 반복적인 읽기 시에 동일한 결과를 보장하는 ISOLATI..
Transaction 이나 Lock 이 걸리는지를 테스트 해 보기 위해서,또는 대규모의 접속 상황을 가정해서, 동시에 insert 를 한다던지의 상황을 만들어내기 위해,쿼리를 의도적으로 지연시키고 싶은 경우가 있다. 이럴때 MySQL 에서는 sleep function을 사용하면 된다. [참고] http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_sleep [사용 예] http://dev.kthcorp.com/2012/03/14/mysql-table-lock/ MySQL 온라인 매뉴얼을 보면 초 단위로 지연시킬 수 있다고 하는데, 실제로 해보면, 주어진 초보다 좀 더 지연되는것 같다. SELECT * FROM {테이블 이..
[참고] http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id SELECT last_insert_id() FROM T; last_insert_id() function은 같은 Connection 에서 가장 최근에 insert 된 row의 auto increment column 의 값을 반환한다. 그런데, INSERT 전에 SELECT last_insert_id() 를 최초로 실행할 경우, 올바른 값을 가져오지 못한다. ( 0 이 조회됨. ) 테스트 해 보려면 관리 메뉴에 들어가서 MySQL 서비스를 재시작 하고, 다시 MySQL 에 접속해서 쿼리를 날려보자. LAST_INSERT_ID( expr ) ..
-- CODE_NAME 을 반환하는 fn_code_name Function DROP FUNCTION IF EXISTS fn_code_name; DELIMITER $$ CREATE FUNCTION fn_code_name(groupCode TEXT, commCode TEXT) RETURNS TEXT READS SQL DATA BEGIN DECLARE codeName TEXT; SET codeName = (SELECT CODE_NAME FROM T_COMMCODE_DETAIL WHERE GROUP_CODE = groupCode AND COMM_CODE = commCode AND USE_YN = 'Y'); RETURN codeName; END $$ DELIMITER ; MySQL Function 만들때 주의할 ..
-- mo 이름을 가져오기 위한 function. 최상위 노드의 MO_NAME 컬럼값을 가져온다. DELIMITER $$ DROP FUNCTION IF EXISTS ntelsdm.fn_mo_name; CREATE FUNCTION fn_mo_name(param_mo_id INTEGER) RETURNS TEXT READS SQL DATA BEGIN DECLARE _id INTEGER; DECLARE _parent INTEGER; DECLARE _mo_name TEXT; DECLARE _count INT DEFAULT 0; DECLARE done INT DEFAULT FALSE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; SET _parent := NU..
2013. 5. 21 오후 7:36:17 org.apache.catalina.core.StandardWrapperValve invoke심각: Servlet.service() for servlet [SyncServerServlet] in context with path [/{context명}] threw exception [org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: Got error -1 from storage engine### The error may involve {패키지명}.dao.CommMapper.startPackage-Inline### The..
[참고] http://www.okjsp.net/bbs?seq=137293 AUTO_INCREMENT 속성의 PK 컬럼값을 다른 컬럼에도 쓰고 싶은 경우 - 더구나 그 컬럼이 PK 컬럼을 참조하는 foreign key 인 경우, 그러면서 NOT NULL 속성으로 되어 있는 경우 select ifnull(max(a),0)+1 from table INSERT INTO table (a, b, c) VALUES (#seq#, #b#, #seq#) 이런 방법이 가장 맞는것 같다. https://www.okjsp.net/bbs?seq=189887 http://www.raistudies.com/mybatis/inserting-auto-generated-id-using-mybatis-return-id-to-java/
[원문] http://junho85.tistory.com/11 SELECT @@AUTOCOMMIT; // AUTOCOMMIT 여부 확인 SET AUTOCOMMIT = TRUE; // AUTOCOMMIT 설정SET AUTOCOMMIT = FALSE; // AUTOCOMMIT 해제 COMMIT; // 커밋ROLLBACK; // 롤백 참고로 일반적으로 기본 DB Engine으로 지정되는 MyISAM 은 TRANSACTION 을 지원하지 않기 때문에 ROLLBACK이니 COMMIT이니 무의미 하다. TRANSACTION을 지원하지 않으면 무조건 AUTOCOMMIT된다고 보면 된다. 그러므로 TRANSACTION기능을 사용하고자 한다면 TABLE을 생성할때 TRANSACTION을 지원하는 DB엔진을 사용하면 된다..
MySQL에서 SELECT NOW(); 를 해보면 초 단위까지 밖에 안 나온다. 그러나 SELECT NOW(3); 을 하면 millisecond 단위까지 나오고, SELECT NOW(6); 을 하면 microsecond 단위까지 현재 시간이 나온다. 테이블 생성할때 컬럼을 DATETIME(6) 으로 지정해야지 microsecond 단위까지 저장된다. http://stackoverflow.com/questions/13344994/mysql-5-6-datetime-doesnt-accept-milliseconds-microseconds http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html http://stackoverflow.com/questions/..