Hallo Liste!
Mal was für die MySQL-Experten:
ALTER TABLE a ADD b tinyint(2) DEFAULT '0' NOT NULL AFTER c;
ergibt:
parse error near 'AFTER c' at line 1
Sonst Funktioniert alles prima...
(Ach ja: Version 3.23)
Grüße, Eric
am Wed, dem 10.10.2001, um 12:24:00 +0200 mailte Eric Schaefer folgendes:
Hallo Liste!
Mal was für die MySQL-Experten:
ALTER TABLE a ADD b tinyint(2) DEFAULT '0' NOT NULL AFTER c;
ergibt:
parse error near 'AFTER c' at line 1
wenns Dich tröstet:
qm_system=# create table test (a int); CREATE qm_system=# alter table test add b tinyint default 0 not null after a; ERROR: parser: parse error at or near "after"
meint PostgreSQL.
Aber was MySQL anbelangt: Version 4 ist am Horizont zu sehen ( http://www.pro-linux.de/news/2001/3557.html ), vielleicht kann es das besser.
Andreas
Am Mittwoch, 10. Oktober 2001 12:56 schrieb Andreas Kretschmer:
Aber was MySQL anbelangt: Version 4 ist am Horizont zu sehen ( http://www.pro-linux.de/news/2001/3557.html ), vielleicht kann es das besser.
es geht mit 3.23. Zumindest über phpmyadmin habe ich es schon mehrmals gemacht. allerdings habe ich mir die Querysyntax nicht gemerkt. Aber vieleicht mal dort probieren?
Mit freundlichen Grüßen
Jens Puruckherr
On Wed, Oct 10, 2001 at 12:56:24PM +0200, Andreas Kretschmer wrote:
am Wed, dem 10.10.2001, um 12:24:00 +0200 mailte Eric Schaefer folgendes:
ALTER TABLE a ADD b tinyint(2) DEFAULT '0' NOT NULL AFTER c;
ergibt:
parse error near 'AFTER c' at line 1
wenns Dich tröstet:
Nicht wirklich.
qm_system=# create table test (a int); CREATE qm_system=# alter table test add b tinyint default 0 not null after a; ERROR: parser: parse error at or near "after"
meint PostgreSQL.
Hmmm...
Aber was MySQL anbelangt: Version 4 ist am Horizont zu sehen ( http://www.pro-linux.de/news/2001/3557.html ), vielleicht kann es das besser.
Hab keinen Einfluß auf die installierte Datenbankversion.
Was mich verwundert, ist die Tatsache, daß es sich um ein gültiges SQL Statement handelt und die Umgebung gültig ist (es existiert im aktuellen Scope eine Tabelle a mit allen nötigen Rechten, es existiert eine Spalte c und 'b' ist ein gültiger Spaltenname, der in 'a' noch nicht existiert). Laut mySQL-Dokumentation ist das auch alles implementiert (AFTER erst seit 3.22).......
*ratlosmitdenschulternzuck*
Eric
Das folgende funktioniert bei mir:
use test; drop table test_tabelle;
create table test_tabelle( id int NOT NULL auto_increment, a int default 0 NOT NULL, c tinyint default 0 NOT NULL, PRIMARY KEY (id) );
INSERT INTO test_tabelle (a,c) VALUES (1,1); INSERT INTO test_tabelle (a,c) VALUES (2,2);
alter table test_tabelle add b tinyint default 0 NOT NULL after a;
INSERT INTO test_tabelle (a,b,c) VALUES (3,3,3);
SELECT * FROM test_tabelle;
Kann's an dem fehlenden primary key gelegen haben ?
Stefan
On Wed, Oct 10, 2001 at 01:38:26PM +0200, Stefan Lagotzki wrote:
create table test_tabelle( id int NOT NULL auto_increment, a int default 0 NOT NULL, c tinyint default 0 NOT NULL, PRIMARY KEY (id) );
Kann's an dem fehlenden primary key gelegen haben ?
Laut phpMyAdmin:
Indizes : Name Unique Feld PRIMARY Ja id
Gruß, Eric
lug-dd@mailman.schlittermann.de