본문 바로가기

MySQL Workbench26

[MySQL] UQ 설정하기 _Error Code: 1062. Duplicate entry MySQL에서 UQ 설정하기Error Code: 1062. Duplicate entry 가 나오는 이유!: 동일한 항목이 있어서 저장을 할 수 없다는 뜻이다.   Error Code: 1062 가 되도록 MySQL에서 설정하는 방법을 밑에서 알아보자. 1. 하나의 컬럼 값을 유니크하게 설정하고 싶을 경우- 고객 이메일 데이터 같은 중복되면 안 되는 항목을 설정할 때 사용한다.- 테이블 생성시 원하는 컬럼의 UQ 체크해 준다. - 설정을 완료하면 인덱스 탭에 유니크 값이 들어가 있는 것을 볼 수 있다. - 모두 확인한 다음 동일한 항목 insert 하면,   밑에 박스와 같은 오류가 뜨면 정상적으로 유니크 값이 설정된 것이다.Error Code: 1062. Duplicate entry 'abc@naver... 2024. 5. 20.
[MySQL] Foreign Keys 값 설정되어있는 데이터 삭제하기 _on delete cascade 설정 Foreign Keys 값 설정되어 있는 데이터 삭제하기 데이터 삭제하는데 문제 상황: Error Code : 1451 로 인해 삭제가 불가능하다Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`yhdb`.`papers`, CONSTRAINT `papers_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`))  문제 이유: 에러코드를 읽어보면, Foreign Keys 값 설정되어 있어서 삭제할 수 없다고 한다.  그 이유는 데이터를 마구잡이로 삭제하게되면 데이터의 정확성이 떨어지기 때문에,  데이터의 정확성을 위해서 프로그램이 .. 2024. 5. 16.
[MySQL] 테이블 합치기 _ join, left join, right join, 3개 이상 테이블 join 테이블을 하나로 합치기 테이블 합치기 전에 Foreign Key를 지정해야 한다.참고. https://msdev-st.tistory.com/119 [MySQL] Foreign Keys 지정해서 테이블끼리 연결하는 방법Foreign Keys 지정해서 테이블끼리 연결하는 방법 FOREIGN KEYFOREIGN KEY 제약 조건을 설정한 필드는 외래 키라고 부르며, 한 테이블을 다른 테이블과 연결해 주는 역할을 한다.외래 키가 설정된 테이블msdev-st.tistory.com  테이블을 하나로 합칠 때는 join 키워드를 사용한다.- from -- join -- on ---- 두개 테이블을 하나로 합쳐서 가져오시오.select *from ordersjoin customers on orders.customer_.. 2024. 5. 16.
[MySQL] Foreign Keys 지정해서 테이블끼리 연결하는 방법 Foreign Keys 지정해서 테이블끼리 연결하는 방법 FOREIGN KEYFOREIGN KEY 제약 조건을 설정한 필드는 외래 키라고 부르며, 한 테이블을 다른 테이블과 연결해 주는 역할을 한다.외래 키가 설정된 테이블에 레코드를 입력하면, 기준이 되는 테이블의 내용을 참조해서 레코드가 입력된다.즉, FOREIGN KEY 제약 조건은 하나의 테이블을 다른 테이블에 의존하게 만드는데 외래 키의 이 부분이 데이터의 정확성을 높여준다고 볼 수 있다.FOREIGN KEY 제약 조건을 설정할 때 참조되는 테이블의 필드는 반드시!! UNIQUE나 PRIMARY KEY 제약 조건이 설정되어 있어야 한다.참조. https://www.tcpschool.com/mysql/mysql_constraint_foreignKe.. 2024. 5. 16.
[MySQL] 테이블 설정 _ Datatype TIMESAMP MySQL 테이블 설정하기 createdAt : 처음 생성될 때 설정Datatype을 TIMESAMP로 지정하고 디폴트 값을 now()로 입력하면데이터를 저장할 때 해당 값을 입력하지 않아도 데이터를 입력한 시간으로 자동 저장된다. (테이블 Default 값을 now()로 입력하고 Apply 하면 CURRENT_TIMESTAMP로 자동 변환된다.)  updateAt : 데이터가 수정될 때 설정Datatype을 TIMESAMP로 지정하고 디폴트값을 now() on update now()를 입력하면해당 컬럼에 데이터를 변경(수정)할 때 시간이 업데이트돼서 저장된다(테이블 Default 값을 now() on update now()로 입력하고 Apply하면 CURRENT_TIMESTAMP ON UPDATE CU.. 2024. 5. 16.
[MySQL] SQL 날짜와 시간 처리하는 함수들 _ dayofweek(), now(), curdate(), date_add(), date_sub() 날짜와 시간 처리하기 DB에서 년, 월, 일  다루기 _birthdate = DATE- day(), month(), year(), dayname(), dayofweek() -- 날짜만 가져올때select name, day( birthdate )from people;-- 월만 가져올때select name, month( birthdate )from people;-- 년도만 가져올때select name, year( birthdate )from people;-- 요일을 문자열로 가져올때select name, dayname( birthdate )from people;-- 요일을 숫자로 가져올때 _글로벌하게 사용하기 위해서 숫자로 사용한다.-- 각 국가의 언어로 클라이언트 개발자가 숫자에서 글로 바뀌게 만든다.se.. 2024. 5. 16.