Meine MySQL DB verwendet für einen Primärschlüssel , aber es war erforderlich, diesen Datentyp zu CHAR(36)
zu ändern. Wenn ich jedoch mit der Maus und unter Verwendung von Workbench ein 'Feld kopieren' an einer Zelle der neuen Spalte CHAR(36)
anlege, erhalte ich die alte Zeichenfolge mit 18 Zeichen. Ich überprüfte die Erklärung dieser Spalte und es steht CHAR(36)
PK. Stimmt irgendetwas nicht?Ändern der Spalte von CHAR (18) zu CHAR (36) IN MYSQL
Antwort
Haben Sie den Schlüssel nach dem Ändern des Säulentyps aktualisiert? Wenn dies nicht der Fall ist, konnten beim Erstellen der Zeile nur 16 Zeichen verarbeitet werden, so dass der Rest der Daten abgeschnitten wird.
Normalerweise erhalten Sie eine DataTruncation-Ezeption, wenn dies angezeigt wird, aber ofc. Wenn Sie diesen Typ von Ausnahme nicht behandelt haben, werden die Daten trotzdem eingefügt - nur abgeschnitten.
Sie können diese Informationen nicht wiederherstellen, es sei denn, Sie haben ein vollständiges Abfrageprotokoll aktiviert, mit dem Sie den Primärschlüssel aus den Protokollen neu erstellen können.
Zumindest ist es eine PK-Column (unique), also, wenn die Einfügung funktioniert hat, war auch der abgeschnittene Teil des Schlüssels einzigartig, was es erlaubt "manuell zu reparieren".
- 1. Code erste Spalten mit Typ char (36)
- 2. Umwandlung von char ** in char * oder char
- 3. Pass char * zu const char * in c
- 4. QByteArray char von char Analyse
- 5. Arduino Ungültige Konvertierung von 'char' zu 'char *'
- 6. Fehler: ungültige Konvertierung von 'char *' zu 'char'
- 7. ungültige Konvertierung von 'const char *' in 'char *'
- 8. Saving Char von lex zu Array von Char in C
- 9. Ändern Sie MySQL numerische Feld zu char mit einer Funktion
- 10. Von [] Byte zu char *
- 11. ändern Werte eines Char []
- 12. Sets Char * in C von Char Trim
- 13. MySQL Suche per char
- 14. Passwort ändern char in HTML
- 15. Kombiniere Char, um Char *
- 16. Umkehren einer Zeichenfolge zwei char durch zwei char
- 17. Ändern von char [] Array-Buchstaben und Ersetzen
- 18. C++ Cast Char * zu unsigned char
- 19. Warum der Typ Char ist -> Char -> Char
- 20. char-Array zu unsigned char Python
- 21. Char Zuordnung zu * Char funktioniert nicht
- 22. Speicherzuweisung char * und char []
- 23. C++ char * [] char ** Umwandlung
- 24. MySQL char & varchar Zeichensätze & Speichergrößen
- 25. Char * ersetzen durch char *
- 26. Warum kann ich an welchen char const char * Punkten ändern?
- 27. Aufruf von unmanaged Funktion char char *
- 28. C Pointer - Ungültige Konvertierung von Char zu Char *
- 29. konvertieren char ** arr char * arr []
- 30. Malloc anderen Variablenwert (char *) Ändern
Die Daten waren in einer Tabelle und ich erstellte zuerst das DB-Schema. Die ursprünglichen Daten für IDs hatten 18 Zeichen und es wurde so "eingefügt". Das "gerade erstellte" neue Schema deklarierte IDs als CHAR (36). –
@JoseCabreraZuniga ist es wirklich 'CHAR()' was du benutzt oder 'VARCHAR()'? Beachten Sie, dass die Länge für 'VARCHAR' in Bytes angegeben ist, so dass ein' VARCHAR (36) 'zusammen mit einer Codierung, die 2 Bytes pro Zeichen erfordert, nur 18 Zeichen enthalten kann. – dognose
Ich bin sicher, es ist CHAR –