MySQL, MariaDB 1093 Error 발생 Error 명 SQL 오류 (1093): Table '테이블 명' is specified twice, both as a target for 'INSERT' and as a separate source for date 원인 INSERT INTO T_USR_AREA (AREA_SEQ, AG_01, AG_02, INST_DATE, UPDT_DATE, UPDT_ADMIN) VALUES ((SELECT IFNULL(MAX(AREA_SEQ)+1, 0) FROM t_usr_area), 'Y', 'Y', CURDATE(), CURDATE(), 'user'); 원인은 INSERT 안의 서브 쿼리를 주입함으로써 INSERT가 서브 쿼리를 인식하지 못하는 경우이다. 이로 ..
; 세미클론은 SQL의 종료를 의미합니다. 그러나 프로시저 같은 경우 실행문 중간중간에 표시되는 세미클론에 의해 SQL 종료로 인식하고 프로시저의 종료처리가 되는 안타까운 일이 발생하게 됩니다. 따라서 프로시저의 추가는 DELIMITER의 도움을 받을 수밖에 없습니다. DELIMITER란? SQL의 종료를 변경하는 명령어. 기본 값은 ; 세미클론으로 되어있으나, $$나 %% 같이 사용하지 않는 단어로 바꿈으로서 프로시저의 갑작스러운 종료처리를 방지할 수 있게 됩니다. 따라서 프로시저를 추가할 때에는 DELIMITER [종료 문구] 로 변형해주시고. 프로시저의 사용이 모두 끝나게 되었을 경우 다시 DELIMITER ; 로 원상복구해주면 됩니다. 만약 안 하시게되면, 나중에 간단한 INSERT, UPDATE..
안녕하세요. 이번 시간에는 DB 백업, 복원하기 시간을 가졌습니다. 어떠한 원인에 의해 DB서버는 언제든지 문제가 생길 수 있으므로 백업은 매우 중요합니다. 가령, 서버를 포맷한다거나 이동으로 장애가 아닌 경우에도 사용할 수 있으므로 매우 중요한 기술입니다. 따라서 TEST를 위한 DB를 아무거나 무작정 사용할 수 없으므로 MariaDB를 사용하여 DB를 직접 만들고 사용하였습니다. 백업에 활용한 방식은 mysqldump 방식입니다. 이 방법은 innoDB 엔진에 한해 백업방식이며, 논리 백업 방식을 사용하면서도 간단하게 실행할 수 있어 무난히 사용할 수 있습니다. 다만, 데이터 수가 많아질수록 속도는 매우 느려지는 치명적인 단점을 지녔습니다. 테스트를 위해 maria db에서 실험을 위한 DB를 생성하..
MYSQL 계정에 대한 작업을 하기 위해서는 반드시 ROOT 계정이 필요하다. 콘솔창에서 MYSQL ROOT 접속해보자. 1. MYSQL -U ROOT -P 입력 2. ROOT 비밀번호 입력 접속하게 될 경우 콘솔창에 이와 같이 입력한다. 계정 생성하기 CREATE USER '계정 아이디'@'접속위치(localhost)' identified by '패스워드'; user 권한 주기 GRANT ALL PRIVILEGES ON *.* TO '계정 아이디'@'접속 위치' WITH GRANT OPTION; 권한 확인하기 SHOW GRANTS FOR '계정 아이디'@'접속 위치'; ex ) SHOW GRANTS FOR 'hr'@'localhost'; 권한을 모두 주는 것은 비효율적이지만, 연습용 계정을 만들고 사용..
JAVA를 통해서 입력받은 값을 통해 TABLE을 자유롭게 생성해야 하는 이유가 생겼다. 그래서 CREATE TABLE을 통해 만들 방법을 찾다가 2가지 경우가 되는 것을 확인되었다. 첫 번째 방법은 프로시저를 통해서 테이블을 만드는 방법이다. CREATE OR REPLACE PROCEDURE PRO_CRE(v_name varchar2) IS cursor1 INTEGER; credbsql VARCHAR2(100); BEGIN credbsql := 'CREATE TABLE ' || v_name || ' (abc number, bac varchar2(10))'; -- 테이블 생성 cursor1 := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(cursor1, credbsql, dbms_..
★DML (Data Manipulation Language) 데이터 조작 어는 데이터 관점에서 생명주기를 제어하는 것을 의미한다. 대표적으로 INSERT, SELECT, UPDATE, DELETE가 있다. 다른 말로는 CRUD라고도 부른다.(Create Read Update Delete). 조작어 설명 INSERT 데이터를 추가한다 SELECT 데이터를 조회한다 UPDATE 데이터를 수정한다 DELETE 데이터를 삭제한다. INSERT INSERT INTO 테이블명 (속성1, 속성2 …) VALUES(값1, 값2…); 만약 TEST테이블 (CUSTNO, CUSTNAME)에 값을 넣는다면. INSERT INTO TEST (CUSTNO, CUSTNAME) VALUES (100, 'ABC'); 이런 예시로 값..
★ DDL (Data Definetion Language) 데이터의 논리적인 물리적 구조를 정의하는 언어로 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정하는 목적으로 사용된다. 대표적으로 CREATE, ALTER, DROP가 있다. 명령어 내용 CREATE TABLE 테이블 생성 ALTER TABLE 테이블 수정 DROP TABLE 테이블 삭제 TRUNCNATE 테이블 내용만 삭제 CREATE TABLE CREATE TABLE TEST ( CUSTNO NUMBER, CUSTNAME VARCHAR2(10) ); TEST TABLE이라는 이름으로 CUSTNO, CUSTNAME 칼럼(속성)을 가진 테이블을 생성한다. CREATE TABLE ( 속성명 속성타입 [속성 값] ); 가장 기본적이며,..
DECLARE v_first VARCHAR2(5) :='FIRST'; BEGIN DECLARE v_second VARCHAR2(8) :='SECOND'; BEGIN DBMS_OUTPUT.PUT_LINE(v_first); DBMS_OUTPUT.PUT_LINE(v_second); END; DBMS_OUTPUT.PUT_LINE(v_first); END; / DECLEARE [선언부] 변수나 상수를 선언하는 부분이다. BEGIN [실행부] 제어, 반복문, 함수정의 등 기술 가능 부분 END; 선언하고 실행을 하였다. 결과는 이렇게 나온다. ※ 만약 PL/SQL 프로시저가 성공적으로 완료되었습니다만 나올 경우엔. SET serveroutput ON SET verify OFF 셋팅을 하면 된다. OUT_PUT선언이..
Oracle Developer 설치하기 1. 오라클 디벨로퍼 설치 사이트 접속합니다. https://www.oracle.com/tools/downloads/sqldev-v192-downloads.html Oracle SQL Developer Downloads This archive. will work on a 32 or 64 bit Windows OS. The bit level of the JDK you install will determine if it runs as a 32 or 64 bit application. This download does not include the required Oracle Java JDK. You will need to install it if it's not alre..
주소 : https://colorscripter.com/ 사용법은 매우 간단합니다. 코드를 복사 후 붙여놓기 하시면 상단 좌측에 언어가 자동으로 세팅됩니다. 그 후, 우측 아래 공유하기, html 복사, 클립보드 복사가 있습니다. 그중, 공유하기랑 클립보드 복사하기가 가장 쓰기 쉽고 편합니다. html 같은 경우엔, 불러오는데 렉이 발생하여 사용하기가 개인적으로 힘들더라고요. 공유하기를 눌렀을 경우, 화면과 같이 링크로 공유를 하게 됩니다. 많은 코딩이 있을 때, 이처럼 요약하면 보기 깔끔해질 수 있습니다. 클립보드로 복사하기를 사용하시면, 이처럼 flash 파일 형식으로 지원하게 됩니다. 사이트마다 pdf 지원과 미지원이 있으니 참고하시면 되겠습니다. 코드를 공유할 때, 간단하게 설정할 수 있는 창입니..