3asymous3
Goto Top

MySQL Probleme beim Tabelle erstellen

Hallo,

bin ein aboluter Anfänger in SQL, arbeite gerade mit einem Lehrbuch und komm nicht weiter bei einem Befehl

Ich arbeite mit MySQL ( Version 5.1..24 ) und stoße auf folgendes Problem beim Erstellen der Tabelle.
CREATE TABLE t_lager
 (id INTEGER NOT NULL,
 stueck INTEGER DEFAULT 1,
 preis FLOAT NOT NULL,
 wert **COMPUTED BY**(stueck * preis));
Den Befehl COMPUTED BY will er einfach nicht akzeptieren und es kommt dann folgende Fehlermeldung:

You have an Error in your SQL syntax, check manual corresponds to your MySQLServer Version for the right syntax to use neartted by (stueck * preis)), at line 5

Es wäre prima wenn mir jemand das verständlich erklären könnte ( bin absoluter Anfänger in diesem Bereich ), damit ich weiter im Lehrbuch arbeiten kann.

Content-ID: 147596

Url: https://administrator.de/forum/mysql-probleme-beim-tabelle-erstellen-147596.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

Nottrott
Nottrott 25.07.2010 um 00:38:06 Uhr
Goto Top
Hi,

soweit ich weiß, gibt es in MySQL kein COMPUTED. Ist das Buch allgemein über SQL oder für ein bestimmtes Datenbanksystem?
Aber du könntest den Wert z.B. erst im SELECT berechnen, wenn du ihn brauchst. z.B.: SELECT (stueck * preis) AS wert FROM t_lager;
Oder vor dem INSERT berechnen und dann nur den berechneten Wert reinschreiben.
Ersteres hat halt den Nachteil, dass es jedesmal neu berechnet wird und zweiteres, dass du beim Ändern dran denken musst, den Wert auch mit zu ändern.

Gruß
nottrott
3asymous3
3asymous3 25.07.2010 um 16:35:57 Uhr
Goto Top
Das Buch ist aus dem HERDT Verlag und behandelt SQL Grundlagen und Datenbankdesign.
dog
dog 25.07.2010 um 19:28:09 Uhr
Goto Top
SQL ist zwar ein Standard, aber es gibt keine Implementation, die sich an den Standard hält.
Sobald du über SELECT a FROM b hinaus kommst wird des produktspezifisch.

Und wie Nottrott schon sagte: MySQL kann kein COMPUTED BY.
So ein Feld holt man sich entweder beim SELECT oder berechnet es über Trigger.