support multiple primary key columns