현재 데이터베이스 테이블을 디자인하고 값을 업데이트/삽입하는 데 문제가 있습니다.
의 표에 의해 식별되는 집계 통계를 수집하는 데 사용됩니다MySQL에서 기본 키없이 값을 효율적으로 업데이트하는 방법은 무엇입니까?
- 소스를
- 사용자
- 통계
- 옵션 물질 (예를 들어, 항목 유형)
- 옵션을 엔티티 (예 : 동물)
내 주요 문제는 제안 된 기본 키가 너무 큽니다. 통계를 식별하는 데 사용되는 VARCHAR
이 있기 때문입니다.
나의 현재 테이블은 다음과 같이 생성된다 :
특히CREATE TABLE `Statistics` (
`server_id` varchar(255) NOT NULL,
`player_id` binary(16) NOT NULL,
`statistic` varchar(255) NOT NULL,
`material` varchar(255) DEFAULT NULL,
`entity` varchar(255) DEFAULT NULL,
`value` bigint(20) NOT NULL)
상기 server_id
가 구성되면, player_id
는 UUID이다 statistic
마찬가지로, material
와 entity
변경할 수 열거의 표현이다. value
은 SUM()
을 사용하여 집계되어 전체 통계를 계산합니다.
지금까지는 작동하지만 기본 키가 없기 때문에 언제든지 DELETE
및 INSERT
문을 사용해야합니다. MySQL의 제약 조건에서 기본 키를 만드는 방법을 알 수 없습니다. .
내 질문은 :이 테이블의 값을 효율적으로 업데이트하고 현재 행이 없는데 삽입하면 모든 행을 삭제하고 새 행을 삽입하지 않고 어떻게 삽입 할 수 있습니까?
주요 문제는 MySQL이 기본 키에 설정하는 제한 사항 인 것 같습니다. 나는 id
컬럼을 추가하는 것이 이것을 해결할 것이라고 생각하지 않는다.
업데이트 쿼리를 작성하는 데 문제가 있습니까? 그것은'WHERE' 조건의 어떤 조합도 포함 할 수 있으며'DELETE' 질의에 넣을 조건을 알고 있다면 이것들은'UPDATE' 질의에 사용하는 것과 같습니다. –
@NicoHaase 주요 문제는 기본 키였습니다. 그러나 나는 이미이 문제를 해결했다. – GiantTree