Tabelle um zwei Zeit Felder erweitern

einfachder

Mitglied
Hi ich habe eine Tabelle namens test01 mit drei Feldern: id, name, text
nun muss ich die tabelle um zwei weitere felder erweitern, ich weiss aber nicht wie man das macht
und zwar um ein timestamp Feld und ein ich weiss jetzt nicht was dafür in frage kommt, aber ein Änderungsdatum Feld - wenn man einen Beitrag editiert hat, gibt es ja ein Änderungsdatum.
Bräuchte dringend Hilfe :(

LG

edit: ich glaube das zweite feld sollte auch ein timestamp sein, weil man ja das datum aktualisieren kann bei einer änderung der datenbank...
 
Zuletzt bearbeitet:
Moin!

"Ich benutze [...] als Datenbank" ... hast du vergessen: Es gibt mehr als ein Datenbank-System.
Da das vor allem MySQL-Benutzer gern vergessen, gehe ich mal davon aus.

Du kannst für beide Spalten den Typ TIMESTAMP wählen.
In MySQL ist ein Timestamp aber nicht gleich einem UNIX-Timestamp - für den kannst Du getrost INTEGER Spalten nehmen.
Nur solltest Du in der gesamten Datenbank immer die gleiche Variante wählen - Kombinationen machen Dir nur das Leben schwer.
Code:
ALTER TABLE
  `test01`
ADD
  `date` TIMESTAMP
DEFAULT
  CURRENT_TIMESTAMP
AFTER
  `id`
;

ALTER TABLE
  `test01`
ADD
  `changed` TIMESTAMP
DEFAULT
  CURRENT_TIMESTAMP
ON UPDATE
  CURRENT_TIMESTAMP
AFTER
  `date`
;
Weiter Informationen dazu findest du hier:
http://dev.mysql.com/doc/refman/5.1/de/alter-table.html
http://dev.mysql.com/doc/refman/5.1/de/timestamp-4-1.html

Gruß
Enum
 
da liegt ein konflikt vor. ja ich rede von mySQL hehe :) gibt es eigentlich ein ähnliches datenbank system, bei dem man aber nicht wie z.b. bei xampp so ein server starten muss... eine anbindung die wie ein *.exe programm funktioniert oder so.. (ausser microsoft access) :D

PHP:
SQL-Befehl:

ALTER TABLE `test01` ADD `date` TIMESTAMPDEFAULT CURRENT_TIMESTAMP AFTER `id` ;

MySQL meldet: Dokumentation
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
 
Code:
SQL-Befehl:

ALTER TABLE `test01` ADD `date` TIMESTAMPDEFAULT CURRENT_TIMESTAMP AFTER `id` ;

MySQL meldet: Dokumentation
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Ok, TIMESTAMPDEFAULT ist definitiv nicht der richtige Parameter - das sind nähmlich zwei.
Aber ich hatte sowieso vergessen, dass MySQL nicht zwei gleiche, automatische Updates in einer Tabelle ausführen kann - daher:
Code:
ALTER TABLE
  `test01`
ADD
  `date` TIMESTAMP
DEFAULT
  CURRENT_TIMESTAMP
AFTER
  `id`
;

ALTER TABLE
  `test01`
ADD
  `changed` TIMESTAMP
DEFAULT
  NULL
ON UPDATE
  CURRENT_TIMESTAMP
AFTER
  `date`
;
gibt es eigentlich ein ähnliches datenbank system, bei dem man aber nicht wie z.b. bei xampp so ein server starten muss... eine anbindung die wie ein *.exe programm funktioniert oder so.. (ausser microsoft access) :D
Meinst Du das Du nicht den Button in Xampp selber klicken musst? Dafür gibt es soweit ich weiß ein Häckchen neben dem Button ("Install as Service" oder so ähnlich).

Greetz
 
PHP:
Fehler

SQL-Befehl:

ALTER TABLE `mininews` ADD `changed` TIMESTAMPDEFAULT NULL ON UPDATE CURRENT_TIMESTAMP AFTER `date` ;

MySQL meldet: Dokumentation
#1067 - Invalid default value for 'changed'

Meinst Du das Du nicht den Button in Xampp selber klicken musst? Dafür gibt es soweit ich weiß ein Häckchen neben dem Button ("Install as Service" oder so ähnlich).

was passiert denn, wenn man es als "install as service" macht? installiert er ein programm oder wie ?

gruß
 
http://de.wikipedia.org/wiki/Windows-Systemdienst hat gesagt.:
Ein Windows-Systemdienst (kurz Dienst oder engl. Service) ist ein Programm, das automatisch beim Hochfahren von Windows startet und so lange im Hintergrund läuft, bis Windows heruntergefahren wird. Im Konzept ist er dem Unix-Daemon sehr ähnlich. Ein Großteil der Windows-Systemdienste sind als Windows-Systemprozesse realisiert.
Das sagt ja wohl alles.

Im Übrigen ist MySQL unter Windows eine "exe-Datei".
Was dachtest Du das es wäre - ein Batch-Skript? ;-]

Gruß
Enum
 
@Enumerator

klar ist das eine exe-Datei. Weil ansonsten die Windows-User Schweißausbrüche, Herzrasen u.ä. bekommen, wenn keine exe vorhanden ist :-)

btw: bin mir nicht ganz sicher, aber irgendwo wirst du eine start.bat Datei bei MySQL finden. Mach doch mal ein Doppelclick darauf :)
 
Abend!

Man soll es nicht für möglich halten - ein Batch-Skript! Da hat doch jemand ein komplettes DB-System mit der mickrigen Windows-"Shell" auf die Beine gestellt! Aber klar, wenn das Ding das man anklickt mysql_start.bat heißt, muss es ja wohl so sein. Schließlich steht da ja nicht .exe, hm?

Isaac hat gesagt.:
bin mir nicht ganz sicher, aber irgendwo wirst du eine start.bat Datei bei MySQL finden. Mach doch mal ein Doppelclick darauf :)

Sorry, ich finde Sie nicht - wo soll ich suchen?
Code:
enum:~$ su -
Passwort: 
enum:~# find / -name "*.bat"
/usr/share/pgadmin3/docs/builddocs.bat
/usr/share/doc/python-uno/demo/pyunoenv.bat
/usr/lib/python2.5/ctypes/macholib/fetch_macholib.bat
enum:~#
*ATOMROFL* & Gruß
Enum
 

Neue Beiträge

Zurück