일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- service name
- 톰캣
- 컨트롤러
- Database
- MySQL
- letterspacing
- 오블완
- 티스토리챌린지
- httpservletreqeust
- Linux
- JDBC
- oracle
- cmd
- 안드로이드 스튜디오
- 스레드 덤프
- 키보드
- wsdl
- ibatis
- 스레드
- http
- Docker
- servicename
- 영상편집
- SID
- java
- MariaDB
- HTML
- API
- 프로세스
- Tomcat
- Today
- Total
목록개발/Database (31)
블로그 이름
ibatis를 사용하여 oracle과 maria db에서 트랜잭션을 걸고 insert 중, 쿼리 자체에는 문제가 없는데 결과 반환이 false인 현상이 있었다. oracle, maria 둘 다 쿼리 자체엔 문제가 없다 (단순한 insert 쿼리였기에 그리고 isnert 자체도 잘 되고 있었다) java 코드는 insert 후 반환값을 받아 0 이상일 시 true로 반환하도록 하고 있었는데, 동작은 잘 되나 oracle에서는 잘 되는게 maria로 돌리면 결과가 false 로 반환되는 것이었다 확인해 보았을때 ibatis에서 insert의 반환값은 pk 값으로 되어 있는데, oracle 에서는 트랜잭션 실행 후 for문을 돌면서 insert 시마다 pk가 반환되는데 maria에서는 insert가 되었는데도..
auto_increment와 last_insert_id() 사용 시 주의점 auto_increment란 DB 테이블 컬럼에 자동으로 증가하는 값이다.last_insert_id()는 테이블의 마지막 auto_increment 값을 리턴한다. DROP TABLE IF EXISTS `test`;CREATE TABLE `test` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `test` VARCHAR(10) DEFAULT NULL, PRIMARY KEY (`id`));INSERT INTO test(col) VALUES('a'),('b'),('c');SELECT last_insert_id();위 순서대로 쿼리 실행 시 last_insert_id는 3일 것으로 예상 하였으나 1이 ..
Oracle 에서 사용하는 START WITH 절 쿼리를 MariaDB로 작성해야 하는 일이 있었다.MariaDB는 CONNECT BY가 없어서 ORACLE의 쿼리를 그대로 사용할 수 없다. 오라클 쿼리 예시SELECT id, parent_id, nameFROM deptsSTART WITH parent_id IS NULLCONNECT BY PRIOR id = parent_idORDER SIBLINGS BY name; 해당 쿼리를 MariaDB 쿼리로 변경 시 아래와 같다.WITH RECURSIVE cte AS ( SELECT id, parent_id, name, 0 AS level FROM DEPTS WHERE parent_id IS NULL UNION ALL SELECT ..
계층형 쿼리란?부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리이다. START WITH : 트리 구조의 최상위 행을 지정한다.CONNECT BY : 부모, 자식의 관계를 지정한다.PRIOR : CONNECT BY 절에 사용되며 PRIOR에 지정된 컬럼이 맞은편 컬럼을 찾아간다.CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼 : 부모 -> 자식 순 전개CONENCT BY PRIOR 부모 = 자식 : 자식 -> 부모 역방향 전개ORDER SIBLINGS : 계층형 쿼리에서 정렬 수행부모행을 시작으로 자식을 찾는 순방향 전개 계층형 쿼리 예제SELECT deptNameFROM deptsSTART WITH parentName = 'a'CONNECT BY deptName = parentNa..