2017-02-27 11 views
0
iex(6)> :mnesia.table_info(:users, :attributes) 
[:id, :email, :foo, :inserted_at, :updated_at] 

iex(7)> :mnesia.table_info(:users, :index)  
[3] 

iex(8)> :mnesia.add_table_index(:users, :email) 
{:aborted, {:already_exists, :users, 3}} 

나는 첫 번째 인덱스가 Tab인데 왜 인덱스가 아닌 2이 3이 될까요? 인덱스는 1 대신 0을 기반으로합니까?왜 내 입장료 지수가이 순위에 있습니까?

답변

4

레코드 저장소 테이블에는 레코드 형식 형식의 튜플이 포함되어 있습니다. 튜플 1 기반하고 있기 때문에

Index | 1 | 2 | 3 | 4 |  5  |  6  | 
Name | :users | :id | :email | :foo | :inserted_at | :updated_at | 

:email 값을 생성 인덱스가 생성됩니다 : 매핑

{:users, 1, "[email protected]", "foo", {2016, 12, 24}, {2016, 12, 31}} 

: 당신의 예에서 :users 테이블에 저장되어있는 튜플과 같이 보입니다 튜플의 위치 3에 있습니다.

+0

멋지다. 그래서 튜울러는 1 개의 인덱스를 사용한다. – blu