테이블에서 중복값 방지를 위한 contraint가 걸려있을 경우, 중복 키값을 가진 row를 insert 하면 오류가 발생한다. 따라서 일반적인 방법으로는 insert를 하기 전 중복된 키를 가진 값이 이미 table에 존재하는지를 파악하고, 이미 존재할 경우 update를 하도록 구현하여아 한다. 하지만, 중복키 여부를 확인하기 위한 로직을 작성하지 않고도 쿼리 하나로 insert 또는 update를 수행하도록 설정할 수 있는 방법이 존재한다. Oracle 공식 Document 를 참고하면, INSERT ON DUPLICATE KEY UPDATE 구문을 통해 처리할 수 있음을 확인할 수 있다. MERGE Prerequisites You must have the INSERT and UPDATE objec..
테이블에서 중복값 방지를 위한 contraint가 걸려있을 경우, 중복 키값을 가진 row를 insert 하면 오류가 발생한다. 따라서 일반적인 방법으로는 insert를 하기 전 중복된 키를 가진 값이 이미 table에 존재하는지를 파악하고, 이미 존재할 경우 update를 하도록 구현하여아 한다. 하지만, 중복키 여부를 확인하기 위한 로직을 작성하지 않고도 쿼리 하나로 insert 또는 update를 수행하도록 설정할 수 있는 방법이 존재한다. MariaDB 공식 Document 를 참고하면, INSERT ON DUPLICATE KEY UPDATE 구문을 통해 처리할 수 있음을 확인할 수 있다. INSERT ON DUPLICATE KEY UPDATE INSERT if no duplicate key is..
DB Dump는 간단한 명령어를 통해 가능하다. mysqldump -u ID -p DBNAME > FILE_NAME ID, DBNAME, FILE_NAME에 적절한 값을 입력하면 된다. 만일, Table의 데이터 없이 schema만 백업하고 싶으면 다음과 같은 명령어를 사용하면된다. mysqldump -u ID -p --no-data DBNAME >FILE_NAME 옵션에 추가된 --no-data 가 dump를 뜨면서 table 내의 데이터를 무시하도록 하는 역할한다.
일반적인 방법으로는, 외래키가 지정된 Table에 대해 truncate 명령어가 먹히지 않는다. 이를 해결하기 위해선 DB의 데이터를 삭제하고, DBCC의 Reseed 를 이용하여 ID를 초기화 하는 동작을 수행하면 된다. DBCC Reseed와 관련한 문서는 링크로 대체한다. https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkident-transact-sql?view=sql-server-2017