MYSQL Date als Auto_Increment?

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

MYSQL Date als Auto_Increment?

Beitrag von TT73GP7 »

Hallo zusammen,

ich habe grade echt ein Brett vor dem Kopf.

also ich möchte auf einer MySQL Datenbank eine Tabelle erstellen wo ein Date Feld als Default CURDATE() drin hat

Code: Alles auswählen

 
CREATE TABLE dbTEST(
 'text' Varchar(60),
 'Tag' DATE DEFAULT CURDATE()
)
 


so ich habe eigentlich schon wie blöd rumprobiert
also NOW und DATE habe ich auch schon ausprobiert.

aber ich kann die Tabelle einfach nicht anlegen. Es wird immer über das Date Feld gemeckert

:(

das muss doch irgendwie gehen
ich brauche halt nur das Datum und nicht einen ganzen Timestamp

beim Timestamp müsste ich das ganze Projekt umstellen :(

was übersehe ich oder was mache ich falsch?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: MYSQL Date als Auto_Increment?

Beitrag von Michl »

Google "mysql DATE DEFAULT CURDATE()" ergibt als ersten Treffer:
http://stackoverflow.com/questions/20461030/current-date-curdate-not-working-as-default-date-value

Dort:
"The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that you can specify CURRENT_TIMESTAMP as the default for a TIMESTAMP column"

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: MYSQL Date als Auto_Increment?

Beitrag von TT73GP7 »

hach ich habe es befürchtet :(

eigentlich eine blöde Idee alles von SQLite auf MySQL umzustellen
naja einmal in sauren apfel beissen und alles umbauen

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: MYSQL Date als Auto_Increment?

Beitrag von Michl »

Du kannst ja aber auch bei jedem Insert dein gewünschtest Datum (z.B. SysUtils.Date) mitgeben.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: MYSQL Date als Auto_Increment?

Beitrag von TT73GP7 »

Stimmt

das sollte einfacher sein.

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: MYSQL Date als Auto_Increment?

Beitrag von Achtzig »

Du könntest auch einen Trigger setzen, dann funktioniert das auch, wenn Du beispielsweise mit PhpMyAdmin arbeitest.

CREATE TRIGGER `dbTEST_insert_trigger` BEFORE INSERT ON `dbTEST`
FOR EACH ROW BEGIN
IF NEW.Tag = ''
THEN SET NEW.Tag = CURDATE();
END IF;
END

(Ungetestet)

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: MYSQL Date als Auto_Increment?

Beitrag von TT73GP7 »

an einen Trigger hab ich auch schon gedacht
aber ich werde das beim insert machen

weil ich ehh mal die Software aufräumen sollte

Antworten