Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyprostować błąd źle zaprojektowanej bazy sql
Forum PHP.pl > Forum > Bazy danych > MySQL
lectric
Witam,

Problem jest tego typu. Mam duzo zawartosc danych w bazie i jedna z tabelek zawiera pole data ktore jest zdeklarowane jako varchar. Teraz gdy chcem napisac program ktory ma wykonywac jakies tam operacje na dacie wykorzystujac dane z db (pole data), to jestem szczerze mowiac uziemiony na maksa.
Czy jest jakis sposob na przekonwertowanie typu danych varchar na date , bez utraty istniejacych w db danych ?
mhs
Tak, istnieje taka możliwość - chociaż w tym przypadku jest ona uzależniona od tego co jest przechowywane w polach gdzie powinien być typ date. Jeżeli są tam prawidłowe wartości daty - to wówczas wystarczy zwykłe ALTER TABLE i będzie ok. Jeżeli nie to będziesz musiał doprowadzić je do prawidłowych wartości, a następnie wykonać polecenie ALTER.
lectric
luzik,

w zlym polu jest format danych dd-mm-rr, czy bedzie ok do

ALTER TABLE data ADD date;

przy czym pole data jest obecnie w dp, z typem varchar. Mam rozumiec ze "nalozenie" pola jedno na drugie tyle ze z innym typem danych , zemieni wlasciwosci bez utraty rekordow ?
dr_bonzo
Dodaj nowe pole typu DATECOSTAM o nowej nazwie, UPDATE tabli zeby przepisac dane z VARCHARA do DATE. Zmien nazwe starej kolumny, zmien nazwe nowej kolumny na stara nazwe kolumny VARCHAROWEJ i juz. Powinno dzialac. JEdyne problemy moga wystapic przy updacie i przenoszeniu stringa do daty.


AAaaa i usun stara kolumne gdy wszystko juz dziala
lectric
hmm, no to juz widze komplikacje kolejna przy UPDATE dla ok 4 mln rekordow , trzeba sortowac...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.