마리아 db에서 같은 테이블에서 업데이트를 치려고 하는데 table is specified twice 이런 에러가 났다. 흠.. 구글링을 해보니 The solutions involving SELECT ... FROM (SELECT * FROM table) AS tmp just dump the entire content of a table into a temporary table, which can then be used in any further outer queries, like for example an update query. This forces the order of operations to be: Select everything first into a temporary table and the..
마리아 db를 사용하다보면 프로시저를 만들일이 생긴다. 인터넷 검색하면 잡다한게 많이 나와서 프로시저 만들고 실행하는 잘나와 있는 사이트가 있어서 소개한다. 1. Procedure에서 transaction 처리 BOOK테이블에는 초기책에 대한 정보가 입력되고 그리고 BOOK_SELL에 판매될 책의 정보가 입력된다. 프로시저를 이용해서 BOOKS, BOOKS_SELL 테이블에 입력하도록 한다. /* DELIMITER는 프로시저 앞,뒤의 위치하여 안에 있는 부분은 한번에 실행될 수 있게 하는 역할을 한다. */ DELIMITER $$ CREATE PROCEDURE INSERT_BOOK (IN _BOOKID CHAR(5), IN _BOOKNAME VARCHAR(20), _PRICE DOUBLE, _BOOKTY..
use DB명; 을 써주면 된다. 그럼 전체 마리아db 함수 생성 방법은 use DB명; drop function if exists getName; delimiter $$ create function getName(para varchar(20)) returns varchar(300) begin delare rst varchar(300); select name into rst from tableName; return rst; end $$ select해서 나온 name을 into를 통해 rst에 넣고 rst를 리턴한다.
db 사용 및 개발을 하다보면 새로운 db를 만들어서 사용해야할 일이 생긴다. 그럴때는 먼저 db를 만들고 테이블 스키마를 만든다. 그런 다음 기존 사용자가 그 새로운 db를 사용하기 위해서는 권한을 줘야 한다. 권한을 주지 않으면 사용할 수가 없다. (머 .. 당연한 말인가.. 머 당연한것도 안할때가 있지...) 그래서 기존 사용자에게 신규 db 사용권한을 줘야 하고 그 방법을 알기 쉽게 살펴보면 aaa라는 사용자가 있고 bbb라는 신규 db가 있다고 치자 use mysql; show grants for 'aaa'@'%'; 해보면 권한이 없을 것이다. grant all privileges on bbb.* to 'aaa'@'%'; flush privileges; 이렇게 한다음 show grants for..
MariaDB(MySQL) 제약조건(Constraints) 확인(조회) SELECT * FROM information_schema.table_constraints; information_schema.table_constraints에서 모든 제약조건(Constraints)를 확인할 수 있다. 추가로 아래와 같이 입력 시 해당 테이블에 제약조건을 확인할 수 있다. SELECT * FROM information_schema.table_constraints WHERE table_name='테이블명'; 결과의 constraint_type에 foreign key 이라고 되어 있는게 있다. foreign key 는 권고 사항이 아니다. 아시다 시피 피곤한다. 그래서 삭제하려고 했는데... 이런식으로 ALTER TAB..
마리아 db 백업시 아이디 has insuffient privileges to SHOW CREATE FUNCTION 이런 에러가 날때가 있다. 구글링 해봤지만 딱히 답변이... 추측컨데.. information_schema.schema_privileges 이 테이블에 권한이 정보가 insert가 안되서 그럴듯.. select * from information_schema.schema_privileges; 해봐서 데이터가 있는지 확인! 혹시 정확하게 알고 있는 분은 댓글 좀 달아주세요~~
구글링을 하면 마리아 DB 백업하려 관련글이 많이 나와 있다. 하지만 정확하게 나와 있는것이 별루 없다. 다들 대충 쓴듯.. 테스트도 안해보고.. 그래서 황당한일을 겪을 수도 있고 백업은 중요한데 백업이 안되는 경우가 생길 수 있다. 이상한것은 마리아 db 백업시 mysqldump를 쓰는데 쓰다가 오류가 나도 기존에 백업파일이 있으면 리눅스 시간이 현재로 바뀐다. 그래서 마치 백업이 된것처럼 보인다. 큰일난다.. 확인안해보고 대충하면.. 우선 데이터만 백업하려면 mysqldump -u아이디 -p패스워드 DB명 > /aa/backup/파일명.sql 사람들이 많이 실수하는게 "-u 아이디" 이런식으로 스페이스를 두는데 두면 안된다. 데이터만 쌓여 있는 경우 문제가 없지만 Procedure, Function,..
ORACLE(TIBERO) -> MARIA 쿼리 변경 TIP SQL 오류(1146): Table '' doesn't exist ORACLE 오라클은 테이블명 대소문자 가리지 않는다. MARIA 마리아는 테이블명 대소문자 가린다. 분명 테이블이 있는데 Table doesn't exist 이라고 나오면 테이블명 대소문자를 체크해봐야함. HeidiSQL 좌측 테이블 스키마에는 대문자로 전부 나오는데 쿼리 부분에서는 대소문자 가린다.. LIKE 검색시 ORACLE AND EMP_NAME LIKE '%'|| #{EMP_NAME} || '%' MARIA AND EMP_NAME LIKE CONCAT('%',#{EMP_NAME},'%') INSERT UPDATE ORACLE MERGE INTO AA A USING DU..
마리아 db 10.3 부터는 시퀀스가 있다고 들었는데 현재 10.1을 쓰고 있다. 시퀀스를 써야 하는데... 구글링 해봤는데 잘 안되고 삽질한 후 최종 되는 버전으로 올려보겠다. 먼저 채번 테이블 작성 create table A_SEQUENCE ( SEQ bigint(64) not null auto_increment primary key ) collate='utf8_general_ci' ENGINE=InnoDB ; 그 다음 시퀀스 함수 생성 delimiter // drop function if exists F_SEQ; create function F_SEQ() returns bigint begin declare x bigint; insert into A_SEQUENCE(seq) values(0); sel..
- Total
- Today
- Yesterday
- xe addon
- xe애드온
- MySQL
- XE3
- 인포믹스
- 스크래핑
- JDBC
- 파싱
- 프로씨
- XE
- 라이믹스
- C
- C언어
- proc
- 플러터
- 파이썬
- ocjap
- webix
- 포인터
- EC
- 오라클
- 자바 smtp
- 이클립스
- 자바
- 문자열
- ocajp
- KG
- php
- esql
- Python
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
