Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem bei Defaultwert in MySQL (https://www.delphipraxis.net/70440-problem-bei-defaultwert-mysql.html)

Angel4585 30. Mai 2006 12:02

Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS

Problem bei Defaultwert in MySQL
 
Hallo zusammen,

ich mache gerade eine Benutzertabelle in welcher ich die Passwörter als MD5-Prüfsummen speichern möchte.

Ich erzeuge die Tabelle:
SQL-Code:
CREATE TABLE Benutzer(
ID INT NOT NULL AUTO_INCREMENT,
Nick VARCHAR(40),
Passwort VARCHAR(32) DEFAULT "MD5(000)"
)
Das Problem ist jetzt nur dieser Defaultwert den ich setzen möchte, sodass der User bei seinem ersten Login sein Passwort ändern muss.

regulär sähe dieser MD5-Befehl so aus:
SQL-Code:
MD5("000")
allerdings kommt dann ein Syntaxfehler


Kann ich direkt MD5 als Default verwenden?

MfG :angel:

mkinzler 30. Mai 2006 12:09

Re: Problem bei Defaultwert in MySQL
 
Versuch mal:
SQL-Code:
CREATE TABLE Benutzer(
ID INT NOT NULL AUTO_INCREMENT,
Nick VARCHAR(40),
Passwort VARCHAR(32) DEFAULT 'MD5("000")';)

Angel4585 30. Mai 2006 12:13

Re: Problem bei Defaultwert in MySQL
 
nope.. da wird mir dann einfach "MD5("000")" in das Feld geschrieben...

und bei
SQL-Code:
"MD5("000")"
kommt wieder ein Syntaxfehhler

mkinzler 30. Mai 2006 12:46

Re: Problem bei Defaultwert in MySQL
 
Und so
SQL-Code:
DEFAULT MD5("000")
?

Angel4585 30. Mai 2006 12:54

Re: Problem bei Defaultwert in MySQL
 
Syntaxfehler :cry: :cry: :cry:

Angel4585 30. Mai 2006 13:13

Re: Problem bei Defaultwert in MySQL
 
Hab mir jetzt die MD5.pas ausm Netz gezogen und erzeuge mit der ne MD5 Prüfsumme die ich als Defaultwert übergeb.. des funzt.. aber ich hätts irgendwie trotzdem gern direkt mit SQL gemacht.. :?

faux 30. Mai 2006 14:03

Re: Problem bei Defaultwert in MySQL
 
Hallo!

Zitat:

As of MySQL 4.1.0, you can use DEFAULT(col_name) as a more general form that can be used in expressions to produce a given column's default value.
Also würde ich mal folgendes tippen:
SQL-Code:
CREATE TABLE Benutzer(
ID INT NOT NULL AUTO_INCREMENT,
Nick VARCHAR(40),
Passwort VARCHAR(32) DEFAULT (MD5('000'))
)
EDIT: Geht aber nicht. :?
NACHTRAG: Wieso nicht einfach so:
SQL-Code:
Passwort VARCHAR(32) DEFAULT 'c6f057b86584942e415435ffb1fa93d4'
Grüße
Faux

Sharky 31. Mai 2006 05:20

Re: Problem bei Defaultwert in MySQL
 
Hai Angel4585,

erzeuge Dir einfach einen Before-Insert Trigger:

SQL-Code:
CREATE TRIGGER `benutzer_before_ins_tr` BEFORE INSERT ON `benutzer`
  FOR EACH ROW
BEGIN
  SET NEW.passwort = MD5('000');
END;

Jelly 31. Mai 2006 07:13

Re: Problem bei Defaultwert in MySQL
 
Zitat:

Zitat von Sharky
erzeuge Dir einfach einen Before-Insert Trigger:

Die laufen aber wohl doch nur mit dem Tabellentyp InnoDB und nicht mit MyISAM, oder ?

Ich denke faux Lösung ist eindeutig die einfachste


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz