Hallo zusammen,
habe gerade meine ersten Gehversuche mit SQlite gemacht und bin dabei gleich mal auf eine...nunja...etwas seltsames gestoßen. zumindest finde ich es etwas unerklärlich und leider habe ich im Web bisher keinerlei helfende und weiterführende Informationen gefunden.
Es geht jedenfalls um Folgendes:
Eine Tabelle wird wie erzeugt
und jetzt wird die Tabelle befuellt:
So, spätestens als das ohne Fehlermeldung funktionierte wurde ich stutzig. Wie kann der ohne Fehlermeldung einfach so mal eben 25 Zeichen in nen varchar(4) schreiben? Aber okay, vllt. meckert er einfach nur ned und machts trotzdem richtig, also:
und man erhält Folgendes:
Ohne dass irgendwas abgeschnitten wäre, ohne Meldung, ohne alles.
Unter uns: Ich habe das ganze auch mal mit nem varchar(255) ausprobiert und da ließen sich ebenso problemlos Stings >290 Zeichen eintragen und fehlerfrei auslesen.
So und jetzt die Frage:
Verstehe ich den varchar(n) einfach nur falsch? Meines Erachtens nach dürfte man in nen varchar(4) nur 4 Zeichen schreiben können und die Datenbank müsste das absichern, wenigstens irgendeinen Fehler ausgeben. Oder doch zumindest abschneiden. oder kann das SQlite einfach nur nicht? *verwirrt*
Und da sind wir auch schon bei Frage zwei:
Wie groß kann n bei varchar(n) maximal werden? Bei Access und MySQL is das ja auch 255 Zeichen beschränkt, MS SQL und andere sind da wesentlich freizügiger hab ich mir sagen lassen...aber über SQlite habe ich diesbezüglich leider noch gar nichts gefunden...
Also...ich hoffe ich habe mein Anliegen halbwegs verständlich vorgebracht. Würde mich über jeden Tipp, Hinweis und jede Anregung freuen. Danke schonmal!
Gruß
Alex
habe gerade meine ersten Gehversuche mit SQlite gemacht und bin dabei gleich mal auf eine...nunja...etwas seltsames gestoßen. zumindest finde ich es etwas unerklärlich und leider habe ich im Web bisher keinerlei helfende und weiterführende Informationen gefunden.
Es geht jedenfalls um Folgendes:
Eine Tabelle wird wie erzeugt
Code:
CREATE TABLE test (id integer, name varchar(4) );
Code:
INSERT INTO test (id, name) VALUES (1, "Dies ist ein Testeintrag!");
Code:
SELECT * from test;
Code:
1|Dies ist ein Testeintrag!
Unter uns: Ich habe das ganze auch mal mit nem varchar(255) ausprobiert und da ließen sich ebenso problemlos Stings >290 Zeichen eintragen und fehlerfrei auslesen.
So und jetzt die Frage:
Verstehe ich den varchar(n) einfach nur falsch? Meines Erachtens nach dürfte man in nen varchar(4) nur 4 Zeichen schreiben können und die Datenbank müsste das absichern, wenigstens irgendeinen Fehler ausgeben. Oder doch zumindest abschneiden. oder kann das SQlite einfach nur nicht? *verwirrt*
Und da sind wir auch schon bei Frage zwei:
Wie groß kann n bei varchar(n) maximal werden? Bei Access und MySQL is das ja auch 255 Zeichen beschränkt, MS SQL und andere sind da wesentlich freizügiger hab ich mir sagen lassen...aber über SQlite habe ich diesbezüglich leider noch gar nichts gefunden...
Also...ich hoffe ich habe mein Anliegen halbwegs verständlich vorgebracht. Würde mich über jeden Tipp, Hinweis und jede Anregung freuen. Danke schonmal!
Gruß
Alex
Comment