mysql error

limchard·2023년 11월 1일
0

mysql

목록 보기
1/2

Error Code: 1175

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY columnTo disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

어떤 행을 삭제하거나 수정하려할 때 나오는 에러인데, 삭제 / 수정시에는 Key 열을 이용해서만 가능하도록 설정되어 있기 때문에 등장한다.

이를 해결하는 방법은 아래와 같이 2가지 이다.

  1. 해결방법
  • Preferences 로 들어가서 가장 아래 Safe Update (rejects UPDATEs and DELETEs with no restrictions) 를 체크 해제하고 워크벤치 재시작 하기
  1. 일시적 해결방법
  • 원하는 쿼리 실행 전에 다음과 같은 쿼리를 한 번 실행시켜 주면 일시적으로 Safe Update 가 해제된다.

Error Code: 1062

Error code 1062 : Duplicate entry '1' for key 'PRIMARY'

해당 에러 원인은 DB Pramary key에 '1'이라는 값이 중복된다는 말이다.
DB에서 테이블을 주회해보고 Primary Key에 중복된 값이 있는지 확인한 후 값을 수정해주면 된다.


Error Code: 3780

MySQL 3780 에러는 컬럼 혹은 테이블간의 타입이 맞지 않아서 발생한 문제다.


Error Code: 1050

테이블을 스키마로 생성시 해당 오류코드로 나오고 생성이 되지않는다.
오류코드 내용은 이미 존재하는 테이블로 나타나는 오류이다.


Error Code: 1136

column과 value의 수가 일치하지 않을 때 발생합니다.


Error Code: 1604

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''2003100005'' at line 1

테이블명이 예약어(명령어)와 겹치거나, 한글, 숫자로만 이루어 질 경우에 해당 오류가 발생한다.

이를 해결하기 위해서는 reserved words를 키보드 ESC밑에 있는 ``를 사용해 감싸주면 해결 된다.

예시) select * from 테이블이름;


Error Code: 1451

Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails ('semipjt'.'recomcourse', CONSTRAINT 'FK_TourSpot_TO_RecomCourse_1' FOREIGN KEY ('tour_seq') REFERENCES 'tourspot' ('seq'))

mysql에서 DB 테이블이나 Row를 삭제하려고 할때 위와 같은 메시지가 발생할 때가 있다.
말그대로 현재 삭제하려고 하는 테이블 또는 행이 다른 곳에서 참조하고 있기 때문에 발생하는 문제다.
이 문제를 해결하는 방법은 아래와 같다.

  1. 해당 테이블 또는 행을 참조하는 데이터를 삭제후 삭제를 한다.
  • 가장 안전한 방법이고 초기 DB 설계자의 의도된 대로 데이터의 관계를 유지할 수 있다는 장점이 있다.
  1. 외래키 체크 설정을 해제한다.
  • 아래와 같이 외래키 체크 설정을 해제하고 해당 테이블 또는 행을 삭제할 수 있다.
  • 문제는 테이블간의 관계를 일시적으로 해제하고 데이터를 삭제하는 것이기 때문에 초기에 셋팅했던 테이블간의 관계를 보장할 수 없게 된다.
  • 즉 테이블 USER의 user_id를 참조하는 Profile 테이블이 있고 user가 사라지면 profile도 사라지게 foreign key와 constraints가 설정되어 있다고 하자. 만약 이 상황에서 외래키 체크 설정을 해제하고 user 데이터를 지우고 다시 외래키 체크 설정을 활성화 하면 profille에는 여전히 user id 정보가 남는다. 즉 애초에 설계자가 의도한 대로 데이터가 남지 않는 문제가 생길 수 있다.
  • 그래도 강제로 테이블을 지워야 겠다면 아래와 같이 외래키 체크 설정을 해제하자.
  • 외래키 체크 해제 후 삭제
SET foreign_key_checks = 0;    # 외래키 체크 설정 해제
drop table .... # 테이블 삭제
SET foreign_key_checks = 1;    # 외래키 체크 설정
profile
java를 잡아...... 하... 이게 맞나...

0개의 댓글