-
Notifications
You must be signed in to change notification settings - Fork 125
-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
멀티컬럼인덱스를 생성할때 unique 인덱스가 생성되지 않습니다. #1778
Comments
멀티컬럼 unique 인덱스를 선언하는 문법은 #1332 패치의 "복합 인덱스를 별도로 선언할 수 있음" 부분을 참고하시기 바랍니다.
일반 인덱스와 unique 인덱스를 막론하고 여러 컬럼에 동일한 인덱스명을 넣는 방식은 XE 자료와의 호환성을 위해 제공하는 레거시 문법입니다. 이 문법은 동일한 컬럼을 참조하는 복합인덱스를 여러 개 선언할 수 없고 순서를 지정할 수 없는 등 여러 가지 단점이 있으므로 더이상 권장하지 않으며, 호환성 유지에 필요한 최소한의 범위 이상으로 특별히 더 확장할 계획도 없습니다. |
아.. 새로운 문법이 생겼군요. |
1.9 버전에서는 멀티컬럼 unique 인덱스가 정상적으로 생성되나요? 만약 XE나 구 버전에서 정상 작동했는데 현재 버전에서 안 된다면 호환성 관련 버그로 취급할 수 있습니다. |
라이믹스 1.9.10 버젼으로 테스트해본 결과 정상적으로 unique로 생성됩니다. |
흠 예전에는 지원했었나 보군요. 그렇다면 라이믹스 2.0에서도 지원하겠습니다.^^ |
참고하시라고 약간 디버깅한 정보를 남겨둡니다. |
알려주신 내용을 참고하여 다시 확인해 보니, 멀티컬럼 unqiue 인덱스 지원이 누락된 것은 의도적인 결정이 아니라 단순한 코딩 실수였던 것 같습니다. is_unique 속성은 index가 아닌 column에 추가해야 하고, index에는 type을 넣어줘야 하는데 뒤바뀌었네요. develop 브랜치에서 패치 적용하였고 추후 동일한 문제가 재발하는 것을 막기 위해 유닛 테스트도 추가했습니다. 이제는 1.9 버전과 동일하게 작동할 것으로 보입니다. |
스키마가 다음과 같다고 할때
<\table name="my_documents">
<\column name="doc_srl" type="number" notnull="notnull" primary_key="primary_key" auto_increment="auto_increment"/>
<\column name="cat1" type="varchar" size="100" notnull="notnull" unique="main_idx"/>
<\column name="cat2" type="varchar" size="100" unique="main_idx"/>
<\column name="cat3" type="varchar" size="100" unique="main_idx"/>
<\column name="idx" type="varchar" size="100" notnull="notnull" unique="main_idx"/>
<\column name="title" type="varchar" size="300"/>
<\column name="content" type="text"/>
<\column name="etcinfo" type="text"/>
<\column name="status" type="number" notnull="notnull" default="0"/>
<\column name="addr" type="varchar" size="300" notnull="notnull"/>
<\column name="dt" type="timestamp" notnull="notnull"/>
</table>
여러개의 컬럼에 걸쳐서 unique값을 주어 멀티컬럼인덱스를 생성했는데
나중에 확인해보니까 멀티컬럼인덱스가 생성되긴 했는데 unique index가 아니라 그냥 index였습니다.
이걸 버그라고 해야할지 구현되지 않은 기능이라고 해야할지 모르겠는데
일단 멀티컬럼 인덱스가 의도대로 만들어진다면 제대로 unique로 생성되어져야 하는게 아닐까 싶습니다.
The text was updated successfully, but these errors were encountered: