QUOTE (Samer Fayssal @ Jun 9 2008, 08:58 PM)

PK allows you to reset the table counter. It means the following: if you add a new record and the table automatically gives this record a new serial number, and then you decide to delete one of those records, pk allows the table to reconfigure itself and reassign the old serial bumber to another record. You need to check your environment before using it.
That is exactly what a primary key should not be. It is true that in most databases there are hacks to reuse primary key values, but they are really hacks. Primary key values should not be reused by their very nature. A primary key value is not only unique, it is unique
along the life span of the system. A normal unique key is just unique "at any monent". So if you have an old primary key value that is not in the table, you should be confident that that record was deleted. The other way around, if you delete a record, you should be confident that no other record will take its primary key value and therefore its identity.
A primary key denotes identity. Identity is somewhat abstract. Two rows can carry the same data, but still be "brothers". They are not one row. Like twin brothers are different, even if almost every property of them is the same. So make this identity visible and workable, it is usually embodied in an autonumber that is added to the "data columns". This is also the reason why a primary key should never have any meaning as data: equal dat would reduce to equal identity, which is just not true.