List:General Discussion« Previous MessageNext Message »
From:Michael J. Pawlowsky Date:October 28 2005 8:16pm
Subject:Re: UNIQUE and INDEX using same field.
View as plain text  
SGreen@stripped wrote:

>"Michael J. Pawlowsky" <mikep@stripped> wrote on 10/28/2005 11:28:42 
>AM:
>
>  
>
>>When creating an index in phpMySQL I get a warning message about having
>>2 indexes using the same field.
>>
>>The table is simply a product comment table.
>>
>>The first index is simply an INDEX on the product_id to speed up
>>displaying them when someone wants to lookup the comments for that 
>>    
>>
>product.
>  
>
>>The second is a UNIQUE constraint on the product_id and the user_id to
>>make sure a user does not insert more than one comment per product.
>>
>>phpMySQL shows me the following warning:
>>*UNIQUE and INDEX keys should not both be set for column `product_id`
>>
>>*If that really is bad to do...  besides programatically how would I do
>>this.
>>
>>
>>Thanks,
>>Mike
>>
>>    
>>
>
>A UNIQUE *is* an INDEX with an added twist. It's a special kind of INDEX 
>that only allows single combinations of the values in the columns that 
>compose the INDEX.  A regular INDEX does not have this restriction.
>
>Defining 
>
>UNIQUE(product_id, user_id)
>
>creates an INDEX. Any index that uses more than one column also acts as an 
>index for each left-most sets of columns, including just the first one. 
>Your UNIQUE and your INDEX overlap and the INDEX is not necessary.
>
>Shawn Green
>Database Administrator
>Unimin Corporation - Spruce Pine
>  
>


Thanks for the answer.

 I know it is an index...  I did not know that an index using 2 columns 
will be used when calling a statement that uses only one of those columns.
Just for the fun of it I will trace a query to see if uses it.

Thanks again,
Mike


Thread
UNIQUE and INDEX using same field.Michael J. Pawlowsky28 Oct
  • Re: UNIQUE and INDEX using same field.SGreen28 Oct
    • Re: UNIQUE and INDEX using same field.Michael J. Pawlowsky28 Oct