![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos-Komponenten
Datenstruktur von zwei Tabellen ändern
Hallo liebe DP,
ich habe ein Problem und zwar bezüglich dieses Threads: ![]() Auf Grund der letzten Antworten, habe ich mich entschlossen, meine Datumswerte nun doch als DATE und Warenbestände nur noch als INTEHER zu speichern anstatt als VARCHAR. Ich habe also zwei Tabellen, "Buchungen" und "Wareineingang". Felder in der Tabelle "Buchungen": PartDatum - alter Feldtyp: VARCHAR - neuer Feldtyp: DATE AlterBestand - alter Feldtyp: VARCHAR - neuer Feldtyp: INTEGER NeuerBestand - alter Feldtyp: VARCHAR - neuer Feldtyp: INTEGER Felder in der Tabelle "Wareneingang": Eingangsdatum - alter Feldtyp: VARCHAR - neuer Feldtyp: DATE Buchungsdatum - alter Feldtyp: VARCHAR - neuer Feldtyp: DATE Meine Frage wäre nun, wie ich diese Feldtypenänderung mit den Zeos-Komponenten relaisieren kann, da ich die als VARCHAR gespeicherten Datumswerte ja vorher noch mittels FormatDateTime('yyyy-mm-dd') konvertieren muss. Wenn ich den Feldtypen jedoch direkt ändere, gehen meine gespeicherten Daten verloren, bzw. werden auf null gesetzt. Wie ändere ich nun also den Feldtypen, ohne die Tabelle zu zerstören, bzw. meine gespeicherten Daten zu verlieren? Bin für jede Hilfe sehr dankbar! |
Re: Datenstruktur von zwei Tabellen ändern
Hallo Sebastian,
Zitat:
SQL-Code:
Grüße vom marabu
alter table buchungen
change partdatum partdatum date, change alterbestand alterbestand integer, change neuerbestand neuerbestand integer |
Re: Datenstruktur von zwei Tabellen ändern
Zitat:
Für die VARCHAR-Werte, die in DATE konvertiert werden, jedoch leider nicht. Ich bekomme für jeden Record einen Datumswert in der Form "0000-00-00" wieder. Gibt es eine Möglichkeit, die alten Datumswerte von VARCHAR in das DATE-Format zu konvertieren, ohne das es auf null gesetzt wird? |
Re: Datenstruktur von zwei Tabellen ändern
Guten Morgen.
Zitat:
MySQL erwartet Datumsangaben im Format '2006-03-13' - wie hast du sie gespeichert? Eventuell musst du den String vor dem Wechsel des Datentyps neu arrangieren, was mit einem UPDATE Statement möglich sein sollte - ungetestet:
SQL-Code:
marabu
/* 13.03.2006 --> 2006-03-13 */
update buchungen set partdatum = concat( right(partdatum, 2), "-", mid(partdatum, 4, 2), "-", left(partdatum, 4) ) |
Re: Datenstruktur von zwei Tabellen ändern
Eine weitere Möglichkeit wäre es im ersten Schritt ein weiteres Feld des neuen Type einzufügen, dieses mit den Werten des alten Felds zu füllen.Bei Erfolg kann dann das alte Feld gelöscht werden.
|
Re: Datenstruktur von zwei Tabellen ändern
Zitat:
Manchmal ist die Lösung so nah... Vielen Dank, Euch allen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz