sql >> Databasteknik >  >> RDS >> Sqlserver

Brott mot PRIMARY KEY-begränsningen

Vad du vill göra är att först söka efter den befintliga posten, och om den inte finns lägg till en ny. Din kod kommer alltid att försöka lägga till en ny post. Jag antar att du använder Linq2Sql (baserat på InsertOnSubmit )?

public void Subscribe(string clientID, Uri uri)
{
    using(clientsDBDataContext clientDB = new clientsDBDataContext())
    {
        var existingClient = (from c in clientDB.clientURIs
                              where c.clientID == clientID
                              select c).SingleOrDefault();

        if(existingClient == null)
        {
            // This is a new record that needs to be added
            var client = new ServiceFairy.clientURI();
            client.clientID = clientID;
            client.uri = uri.ToString();
            clientDB.clientURIs.InsertOnSubmit(client);
        }
        else
        {
            // This is an existing record that needs to be updated
            existingClient.uri = uri.ToString();
        }
        clientDB.SubmitChanges();
    }
}


  1. 2 sätt att konvertera ett tal till oktal i MySQL

  2. Hur man förbättrar frågeprestanda med många JOINs

  3. Hur man skapar en sammansatt primär nyckel i MySQL

  4. Pandas to_sql misslyckas på duplicerad primärnyckel