반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MSSQL
- nodejs
- logstash
- Kibana
- MySQL
- Python
- s3
- ssh
- AWS
- mariadb
- 영어
- Git
- 구글
- Ai
- error
- JavaScript
- Windows
- ChatGPT
- build
- unity
- sample
- 엘라스틱서치
- docker
- API
- 유니티
- JS
- elasticsearch
- Linux
- 설정
Archives
- Today
- Total
가끔 보자, 하늘.
mysql sp에서의 조회하는 컬럼명에 @를 붙이는 실수 본문
예를들어 sp를 사용할 때, 내가 조회하는 테이블에 seqIndex라는 컬럼이 있고,
쿼리문은 아래와 같다고 가정한다.
insert into tbTable_Backup (seqIndex) select @seqIndex from tbTable where index=@inp_index;
tbTable과 tbTable_Backup은 같은 구조로 되어 있으며,
tbTable은 seqIndex bigint 컬럼 하나만 가지고 있다고 가정한다.
위 쿼리에서 원래는 서브쿼리인 select문은, 아래의 코드가 원래 의도했던 바다.
insert into tbTable_Backup (seqIndex) select seqIndex from tbTable where index=@inp_index;
이 경우,
Query Browser 든, WorkBench든 문법 오류를 발생하지 않는다.
(컬럼 이름과 변수명이 틀린다고 해도 오류를 발생하지는 않음.)
sp를 사용할 때는 더 황당해 지는데, SQLExecute를 실행해도 오류는 발생하지 않는다.
output 값이 없을 경우, 이런 에러에 대해서는 대처할 방안이 없다.
또한 output 값이 있어도 정상적인 output값을 리턴하지 않는다.
지정된 output값에는 @seqIndex값이 들어가 있을 것이다.
output 변수의 이름이 @seqIndex가 아니어도...
단순 오타에서 비롯된 문제긴 했지만,
mysql에서 어떻게 이런 코드가 output값에 영향을 미쳤는지 찾아봐야 할 듯.
반응형
'개발 이야기 > DB, 데이터분석, AI' 카테고리의 다른 글
SELinux for Galera cluster (0) | 2019.07.03 |
---|---|
ES QueryDSL에서 aggregation에 order 설정 제한 (0) | 2019.01.03 |
Elasticsearch 특정 문서만 지우기 (50) | 2018.09.11 |
mysql query browser 세션 문제 (0) | 2014.07.02 |
mssql에서 select와 파라미터 같이 사용할 경우.. (0) | 2011.11.17 |