I’m creating a messaging system and I’m trying to set it up so it will have a “conversation view” and so users can reply to a message. To do this I have to have a primary ID for each conversation in the table and then a separate unique ID for each message.
My problem is that when I try replying to a message I get this error:
Duplicate entry ’98’ for key 1
It looks like it isn’t allowing me to use the same ID in a column, but I don’t have a ‘unique’ thing set in the table AFAIK.
I also tried to drop the PRIMARY for the id column but got this error:

The message is:
#1075 – Incorrect table definition; there can be only one auto column and it must be defined as a key
I don’t understand why it won’t let me insert the same ID into the id column, because as you know I need an ID for each conversation.
The mysql_query that I’m using to insert the reply into the table is:
$sql = "INSERT INTO messages (id, message_id, to_user, message, subject, from_user, date, time, date_short)
VALUES ('$id', '$message_id', '$to', '$message', '$subject', '$user', '$date', '$time', '$date_short')";
mysql_query($sql) or die(mysql_error());
Thanks in advance!
Your primary key can not be repeated, otherwise it isn’t so useful as a key, is it? The primary key must uniquely identify the record.
The reason you’re getting the error is that the column is set to be auto-number. You have not added that column to a separate key, which is a requirement for auto-number columns in MySQL.
Add it to a key/index with that column first, then remove the PK attribute. Make sure you have some PK in the table.