Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) delimiter, mysql, trigger (edit)
 
Reply to this topicStart new topicStart Poll
> Mysql Trigger mit komplexem Statement, Delimiter funktioniert nicht
Irene
irene.ch
Geschrieben am: Di 13.02.2007, 18:35
Report PostQuote Post

AyomRank 7
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 1114
Mitglied seit: 3.05.2004


Ich kenn mich mit MySQL nicht wirklich aus. Aber da die Fehlermeldung auf einen simplen Syntaxerror hindeutet, fallen mir die beiden Zeilen auf:

CODE
DELIMITER |

DELIMITER;

Bei der ersten Anweisung ist offensichtlich ein Space zwischen DELIMITER und dem Zeichen, bei der zweiten nicht.

Dann gibts noch was:

CODE
set NEW.update_datum = sysdate( );

SET NEW.insert_datum := sysdate( );
SET NEW.update_datum := sysdate( );

Im ersten Trigger soll die Zuweisung über das Gleichzeichen erfolgen, beim zweiten über ein ":=" - wenn MySQL so empfindlich ist wie Oracle, dann müsste das einen Fehler auslösen.

Griessli
Irene


--------------------
Top
PMUsers Website
Top
 
 
Maik
power-labels AG
#2 Geschrieben am: Di 13.02.2007, 21:18 (+02:42)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 485
Mitglied seit: 16.03.2006


Überprüf erstmal, ob du die passende mysql Version hast. Trigger gibt es erst ab Version 5.0.2 und soweit ich weiß kann man den DELIMITER erst seit Version 5 per SQL-Statement ändern. Davor ging das glaube ich nur mit Befehlszeile. Habe in der Doku dazu aber nix gefunden... also ist das nur aus'm gedächtnis gefischt biggrin.gif


--------------------
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Maik
power-labels AG
#3 Geschrieben am: Mi 14.02.2007, 11:21 (+14:02)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 485
Mitglied seit: 16.03.2006


QUOTE
Ich vermute mal eher, dass es daran liegt, dass Delimiter ein Konsolen-Befehl ist - kann das sein? Wie kann ich das umgehen?


Glaube, damit hast du recht. Muss mich auch korrigieren, den Befehl gibt es bereits in Version 4. Habe es gerade ausprobiert, und bei mir scheint der auch nur in der Konsole zu gehen.

Zu deinen Triggern fällt mir nur auf, dass man sich die sparen kann.

QUOTE

CREATE TABLE `tablex` (
`insert_datum` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
`update_datum` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = MYISAM ;


Wenn du diese beiden Spalten so anlegst, und bei Inserts bzw. Updates einfach nicht verwendest, machen sie genau das was deine beiden Trigger machen würden.


--------------------
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/16729

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Lost connection to MySQL cr4m0 124 4 So 23.11.2008, 14:31
MySQL Frage G.P. 104 2 Mo 17.11.2008, 15:59
Suche Freelancer: Ajax, XML, PHP, MySQL omc 319 3 Mi 12.11.2008, 18:22
Einbinden vonn RSS feeds in Typo3 / MYSQL e-card 10953 5 Di 4.11.2008, 18:36
MySql Frage - ID Ändern EuD 122 2 Di 4.11.2008, 11:09
mysql query vereinfachen Big Rob 164 5 Mo 3.11.2008, 22:40
mysql Dump Städte pl_90 163 2 So 26.10.2008, 01:13
MySQL Befehl G.P. 173 5 Fr 24.10.2008, 15:58
Lösung für: Content Slider-Java Script-PHP-MySql Antoine Johannes 335 2 Fr 26.09.2008, 12:54
PHP + MySQL 2 Fragen an euch Coach 196 1 Do 18.09.2008, 10:52




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]