Ich habe eine vorhandene Tabelle namens Persion
. In dieser Tabelle habe ich 5 Spalten:
- persionId
- Pname
- PMid
- Beschreibung
- Pamt
Als ich diese Tabelle erstellt habe, habe ich PersionId
und Pname
als Primärschlüssel festgelegt .
Ich möchte jetzt eine weitere Spalte in den Primärschlüssel aufnehmen - PMID. Wie kann ich dazu eine ALTER
Erklärung schreiben ? (Ich habe bereits 1000 Datensätze in der Tabelle)
personId
in Ihrer Tabelle haben dürfen. Dies bedeutet wiederum, dass Sie doppelte Datensätze erhalten, wenn Sie nur mit diesem Schlüssel von einer Tabelle vom Typ Transaktion (viele) zu dieser Tabelle beitreten, was zu einer Doppelzählung von Transaktionsdatensätzen führt.Antworten:
Löschen Sie die Einschränkung und erstellen Sie sie neu
bearbeiten:
Sie können den Einschränkungsnamen mithilfe der folgenden Abfrage ermitteln:
quelle
Ich denke so etwas sollte funktionieren
quelle
ist eine bessere Lösung, da Sie die Benennung des Primärschlüssels steuern können.
Es ist besser als nur zu benutzen
Dies führt zu zufälligen Namen und kann Probleme beim Skripten oder Vergleichen von Datenbanken verursachen
quelle
Wenn Sie eine Primärschlüsseleinschränkung hinzufügen
beispielsweise:
quelle
In Ihrer Tabelle befindet sich bereits ein Primärschlüssel. Sie können nicht einfach einen Primärschlüssel hinzufügen, da dies sonst zu Fehlern führen kann. Weil es einen Primärschlüssel für die SQL-Tabelle gibt.
Zuerst müssen Sie Ihren alten Primärschlüssel ablegen.
MySQL:
SQL Server / Oracle / MS Access:
Zweitens Primärschlüssel hinzufügen.
MySQL / SQL Server / Oracle / MS-Zugriff:
oder der bessere unten
Dies kann den Einschränkungsnamen vom Entwickler festlegen. Es ist einfacher, den Tisch zu pflegen.
Ich bin etwas verwirrt, als ich alle Antworten angeschaut habe. Also recherchiere ich in einem Dokument, um jedes Detail zu finden. Hoffe, diese Antwort kann anderen SQL-Anfängern helfen.
Referenz: https://www.w3schools.com/sql/sql_primarykey.asp
quelle
Die PRIMARY KEY-Einschränkung identifiziert jeden Datensatz in einer Datenbanktabelle eindeutig. Primärschlüssel müssen EINZIGARTIGE Werte enthalten und die Spalte darf keine NULL-Werte enthalten.
quelle
Nekromantie.
Nur für den Fall, dass jemand ein so gutes Schema hat wie ich ...
So geht's richtig:
In diesem Beispiel lautet der Tabellenname dbo.T_SYS_Language_Forms und der Spaltenname LANG_UID
quelle
Bitte versuchen Sie dies-
quelle
Versuchen Sie es mit diesem Code:
quelle
quelle