Datentyp enum und tinytext in sql-Befehl

Einklang.

Bekanntes Mitglied
Hallo,

ich erhalte folgende fehlermeldung:
Java:
SQL-Exception ist aufgetreten: You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near 
'(255), customers_basket_quantity int, final_price decimal, customers_basket_date' at line 1

dieser kommt erst nachdem schon etwa 25 tabellen durchgelaufen sind. Besonderheit hier sind die zwei Datentypen enum und tinytext, die vorher nicht da waren.
Muss ich in das SQL Statement hier Anführungszeichen bzw Hochkomma unterbringen?

Hier das SQL-Statement: [sql]customers_basket (customers_basket_id int, customers_id int,
products_id tinytext(255), customers_basket_quantity int, final_price decimal,
customers_basket_date_added char(8), checkout_site enum(8), language varchar(32))[/sql]

Also gehört die Zahl von der Klammer bei enum und tinytext in Hochkomma bzw. Anführungszeichen oder ist das so in Ordnung?

Ich habe in den Befehlen die vorher gut funktionierten auch nur den DAtentyp text gesehen, der dann Nummern in einer Klammer mit dabei hatte - zb text(255) und das hat wie gesagt keine Fehlermeldung ergeben.....!


besten Dank
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
-Bei MySQL TINYTEXT kann man keine length angeben. Lösche das
Code:
(255)
ersatzlos.
-Bei MySQL ENUM muss in die Klammer die Aufzählung der möglichen Werte, eingeschlossen in einfachen Hochkommas z.B.
Code:
enum('Herr','Frau','Firma')
 

Einklang.

Bekanntes Mitglied
Ja ok danke aber ich hab da ein Problem:

Der Befehl funktioniert nicht:
Java:
if(tabellenabfrage.getString(3)=="varchar") {........

Ob ich Groß-oder Kleinschreibung daraus mach ändert auch nichts...... habe auch die Spalte (2) versucht aber das nimmt er anscheinend nicht an.........!

Daran scheitert dann das Auslesen und Modifizieren bei den genannten Datentypen......! Momenten sortier ich so:

Java:
if(tabellenabfrage.getString(3)!=null) {
        		  
        		  System.out.println("Sapere stärker!!");
          		 nulleintrag = "("+tabellenabfrage.getString(3)+")";
        	 }
        	  else {
        		  System.out.println("Sapere");
         		  nulleintrag="";

Die Ausgaben mit String sind nur als Kennzeichen gedacht... ;-)! "nulleintrag" ist die Nummer .....!
 
1

124wertlich

Gast
Wann hast du vor die Grundlagen der (Java)-Programmierung zu erlernen? Man mag sich überhaupt nicht vorstellen, wie dein gesamter Code aussieht. Nach Wochen der Programmierung mit Java solltest du mitbekommen haben, wie ein Stringvergleich in Java funktioniert. Da du ja im Internet selbst nichts findest (außer andere Foren) hier der Link zur Klasse String String (Java Platform SE 7 ). Die Methode equalsIgnoreCase könnte man sich näher ansehen
 

Einklang.

Bekanntes Mitglied
Danke war der richtige Hinweis!

Nun, es ist einfach so dass ich mich mit den Gleichungen (if xxx==yyyy) beschäftigt habe und daher eine andere Lösungsstrategie mit String-Funktionen aus den Augen verlor. Dies ist auch bekannt unter "Bahnung"! Bekanntes Wortspiel mit diesem Effekt ist beispielsweise dauernd nach der Farbe "Weiß" zu fragen und dann am SChluss die Frage zu stellen "Was trinkt eine Kuh" und meist wird der Proband sagen "Milch"! Also wenn man eine Lösungsstrategie verfolgt (weiß) werden andere Lösungsmöglichkeiten (kuh trinkt wasser) eher unterdrückt...!

So isses und zum Glück gibts Leute mit Erfahrung und diese Entwicklung schon durchlaufen sind und freundlicherweise Tipps geben - ;-)! Für mich sind hier ein paar Leute eben wie Matrosen - etwas ruppig in der Art aber doch ganz liebenswürdig weil se dann doch helfen! :-D

Danke
 

Ähnliche Java Themen


Oben