CREATE TABLE
plaetze
(
id
bigint(20) NOT NULL auto_increment,
sektor
tinyint(3) default NULL,
reihe
tinyint(3) default NULL,
platz
tinyint(3) default NULL,
stat
char(1) NOT NULL default '0',
datum
datetime default NULL,
event
varchar(255) default NULL,
PRIMARY KEY (id
)
) TYPE=MyISAM ROW_FORMAT=DYNAMICwie sich erkennen lässt ne kontingentgschichte... die query invertiert den stat - der angibt ob ein platz frei ist oder nicht. ich habs auch schon mit anderen indizes versucht - auch ohne auto_increment. hilft alles nix. sobald ich für mein gegenwertiges beispiel eine ganze "reihe" (22 Plätze - deswegn auch des limit) invertiern will macht er dies nicht immer. die steuerung der querys funktioniert über ein php/javascript frontend in dem auch die einzelplatzfreigabe erfolgt - die ohne jedes problem abläuft.
stef
Also ich habe hier eine fast identische Tabelle angelegt:
CREATE TABLE sektors
(
sektor\_id
bigint(20) unsigned NOT NULL auto_increment,
sektor
int(10) unsigned NOT NULL default '0',
reihe
int(10) unsigned NOT NULL default '0',
platz
int(10) unsigned NOT NULL default '0',
stat
tinyint(3) unsigned NOT NULL default '0',
timestamp
timestamp(14) NOT NULL,
PRIMARY KEY (sektor\_id
),
UNIQUE KEY sektor\_idx
(sektor
,reihe
,platz
)
) TYPE=MyISAM ROW_FORMAT=DYNAMIC;
Ein Update mittels
update sektors set stat=1-stat limit 22
funktioniert völlig problemlos, wäre auch schlimm, wenn nicht. Irgendwo muß da bei Dir an einer anderen Stelle ein Fehler sein.
Wie gesagt, das _muß_ funktionieren, sonst könnte man mySQL komplett in die Tonne treten.
Ausprobieren kannst Du es zur Zeit hier:
http://217.226.195.163/test/stev/stev.php
(die IP wechselt um ca 19:14 Uhr, wenn Du sie später noch mal brauchst kann ich dir gerne die neue mitteilen)
cu, ziegenmelker