본문 바로가기

DataBase

Mysql 칼럼 추가 하고 데이터 기반 칼럼 데이터 채우는 DB 쿼리 feat. safe update mode

반응형

evId라는 칼럼을 추가하고, 해당 칼럼에 statId와 chgerId의 데이터를 합친 값을 채우려면 SQL의 ALTER TABLE 문과 CONCAT 함수를 사용할 수 있습니다. 아래는 예제 SQL 쿼리입니다:

ALTER TABLE EV_STATION_API_2
ADD COLUMN evId VARCHAR(10); -- evId 칼럼을 추가, 적절한 데이터 유형 및 길이 지정

UPDATE EV_STATION_API_2
SET evId = CONCAT(statId, chgerId); -- statId와 chgerId를

위의 SQL 쿼리는 다음과 같은 작업을 수행합니다:

1. ALTER TABLE 문을 사용하여 EV_STATION_API_2 테이블에 evId라는 새로운 칼럼을 추가합니다. 데이터 유형 및 길이는 필요에 따라 조정할 수 있습니다.

2. UPDATE 문을 사용하여 evId 칼럼을 statId와 chgerId 칼럼의 데이터를 결합한 값으로 업데이트합니다. CONCAT 함수를 사용하여 두 칼럼의 데이터를 결합합니다.

위의 SQL을 실행하면 EV_STATION_API_2 테이블에 evId 칼럼이 추가되고, 해당 칼럼은 statId와 chgerId의 데이터를 결합한 값을 가지게 됩니다. 이렇게 하면 원하는 결과를 얻을 수 있을 것입니다.

[Mysql Workbench]

UPDATE , DELETE 정도가 없어지는 쿼리에 대해서 안전 장치를 해 놓았다 

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.

이 오류는 MySQL의 "safe update mode"로 인해 발생하며, 일반적으로 UPDATE 명령문이 WHERE 절에서 특정 행을 식별하는 기본 키 또는 유니크 키를 사용하지 않을 때 발생합니다. 이 모드는 실수로 모든 행을 업데이트하는 쿼리를 방지하기 위해 존재합니다.

UPDATE 쿼리를 실행하려면 "safe update mode"를 비활성화하거나 특정 행을 업데이트하는 쿼리를 작성해야 합니다.

1. safe update mode 비활성화:
이 방법은 MySQL Workbench에서 쿼리 실행 설정을 변경하여 "safe update mode"를 비활성화하는 방법입니다.

MySQL Workbench를 열고 상단 메뉴에서 "Edit"를 선택한 다음 "Preferences"를 클릭합니다.
"SQL Editor" 아래의 "Safe Updates" 옵션을 찾고 이 옵션을 비활성화합니다.
변경 내용을 저장한 후 MySQL Workbench를 다시 시작하고 UPDATE 쿼리를 실행합니다.

2. 특정 행 업데이트:
"safe update mode"를 비활성화하지 않고 특정 행을 업데이트하려면 WHERE 절을 사용하여 어떤 행을 업데이트할지 지정해야 합니다.

예를 들어, statId와 chgerId의 값을 알고 있다면 다음과 같이 특정 행을 업데이트할 수 있습니다:

UPDATE evreone.EV_STATION_API_2
SET evId = CONCAT(statId, chgerId)
WHERE statId = 'your_statId' AND chgerId = 'your_chgerId';

 

반응형