mysql에서, 기존 users 테이블에 이미 레코드가 존재하는데, 아래 컬럼 추가하려고 한다.
uid, varchar(20), not null, UK
추가 시 아래 오류가 보였다.
Error Code: 1062. Duplicate entry '' for key 'users.uid'
새 컬럼 추가 전의 기존 레코드를 다 삭제 후 재시도하면 되나 싶어 'DELETE FROM users' 쿼리를 실행했으나 아래 오류가 또한 보였다.
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
먼저 아래 쿼리를 실행해 임시로 Safe Mode 비활성화했다.
SET SQL_SAFE_UPDATES = 0;
그런 다음 기존 레코드 삭제 후 컬럼 추가해보니 정상 결과가 보였다.
DELETE FROM users;
ALTER TABLE users ADD COLUMN uid VARCHAR(20) NOT NULL UNIQUE;
다시는 Safe Mode 활성화~
SET SQL_SAFE_UPDATES = 1;