Brauche Erklärung für Nicht einfügen doppelte Schlüssel Zeile im Objekt error
Mache ich:
SELECT uid, intStatus from dbo.MYTABLE
WHERE
intStatus = 10 and uid = 'a1a1a1a1-a1a1-a1a1-a1a1-a1a1a1a1a1a1'
Und ich bekomme:
uid | intStatus
-------------------------------------- +---------------
'a1a1a1a1-a1a1-a1a1-a1a1-a1a1a1a1a1a1 | 10
Dann brauche ich ein update zu tun, ich brauche die intStatus 18 für diese uid. Also ich mache:
UPDATE dbo.MYTABLE SET intStatus = 18
WHERE
intStatus = 10 and uid = 'a1a1a1a1-a1a1-a1a1-a1a1-a1a1a1a1a1a1'
Und hier, wo ich bin immer der Fehler:
Nicht einfügen doppelte Schlüssel Zeile im Objekt 'dbo.MYTABLE' mit eindeutigen index 'ixMYTABLE'.
Kann jemand, bitte, sagen Sie mir, warum bin ich immer diese Fehlermeldung? Wie kann ich es lösen?
uid ist Primärschlüssel für die Tabelle MYTABLE
intStatus ist eine not null int
Dank einer Tonne!
Es ist etwas in deiner Datenbank-design, verbietet doppelte Werte von intStatus in dieser Tabelle, und es wird ein weiterer Datensatz mit dem Wert 18. Der Weg, das zu lösen ist, um herauszufinden, warum Duplikate sind nicht zulässig. Es gibt wohl einen sehr guten Grund. Dann haben Sie zu einem anderen Blick auf das, was Sie versuchen zu erreichen.
Der Fehler besagt ixMYTABLE eindeutigen index. Was ist die Zusammensetzung dieser eindeutigen index?
uid uniqueidentifier primary key not null und intStatus ist ein int not null
Kannst du das Skript zur Erstellung der Tabelle? Bitte geben Sie den index und beschränken Schöpfung als gut.
Wurde das jemals aufgelöst? Ich habe das gleiche Problem und ich kann nicht eingrenzen, wo meine PK wird dupliziert
Der Fehler besagt ixMYTABLE eindeutigen index. Was ist die Zusammensetzung dieser eindeutigen index?
uid uniqueidentifier primary key not null und intStatus ist ein int not null
Kannst du das Skript zur Erstellung der Tabelle? Bitte geben Sie den index und beschränken Schöpfung als gut.
Wurde das jemals aufgelöst? Ich habe das gleiche Problem und ich kann nicht eingrenzen, wo meine PK wird dupliziert
InformationsquelleAutor user523129 | 2013-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich haben Sie bereits eine Zeile mit intStatus 18 und uid 'a1a1...'
Versuchen zu laufen und zu sehen, ob Sie bereits die Zeile, die Sie versuchen, zu erstellen mit Ihrer UPDATE:
wenn die uid ist der Schlüssel, die Sie nicht haben einen doppelten Wert, einmal mit einem update. Eindeutiger Schlüssel heißt, nur eine Zeile mit einem bestimmten Wert zu jeder Zeit.
InformationsquelleAutor mucio
Wenn die uid ist Ihre primäre Schlüssel ist, dann ist es per definitionem eindeutig, daher die intStatus Zustand ist irrelevant. Sollte dies funktionieren:
Wenn das nicht funktioniert, dann könnte man einen zusammengesetzten Schlüssel, die Kombination beider Spalten, anstatt eine einzelne Spalte Schlüssel.
Info auf der Primärschlüssel und composites
InformationsquelleAutor Chris L
intStatus ist einzigartig
thatswhy mysql wirft einen Fehler.
wenn u wollen, um es auszuführen Abfrage intStatus, sollten Sie nicht eindeutig sein
InformationsquelleAutor user2590771