Select veraltet mit InnoDB

mister-man

Neuer Benutzer
Beiträge
2
Guten Tag,

ich bin neu hier im Forum und hoffe keine Fehler zu machen. Falls diese Frage also schonmal gestellt worden ist, seit nachsichtig mit mir.

Derzeit arbeite ich an einem Advert Script für Gameserver (CSS). Dazu setze ich SQL zur Datenhaltung ein.
Nun habe ich das Problem, das ich bei InnoDB falsche Select ausgaben bekomme.

Beispiel:

Tabellen:

Code:
CREATE TABLE IF NOT EXISTS `msg` (
  `idmsg` int(11) NOT NULL AUTO_INCREMENT,
  `msg` varchar(100) NOT NULL,
  PRIMARY KEY (`idmsg`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
CREATE TABLE IF NOT EXISTS `server` (
  `idserver` int(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(15) NOT NULL,
  `port` varchar(5) NOT NULL,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY (`idserver`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
CREATE TABLE IF NOT EXISTS `server_msg` (
  `fk_idserver` int(11) NOT NULL,
  `fk_idmsg` int(11) NOT NULL,
  PRIMARY KEY (`fk_idserver`,`fk_idmsg`),
  FOREIGN KEY (fk_idserver) REFERENCES server(idserver),
  FOREIGN KEY (fk_idmsg) REFERENCES msg(idmsg)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Nun zu meinem Problem, wenn mein Advert script startet, liest es alle NachrichtenID's aus der server_msg. Sortiert natürlich die aus, welche für andere Server sind.
Wird nun über das Webinterface eine Nachricht entfernt, ignoriert es der Gameserver. Er bekommt fröhlich ein Ergebniss aus dem Cache, denke ich.

Der script ist in Python und es wird pymysql eingesetzt. Das Webinterface ist in PHP.

Danke !
 
Werbung:
Für alle mit selbigen Problem, hier ist die Lösung.....

Code:
          User A                User B
 
          SET AUTOCOMMIT=0;      SET AUTOCOMMIT=0;
time
|          SELECT * FROM t;
|          empty set
|                                INSERT INTO t VALUES (1, 2);
|
v          SELECT * FROM t;
          empty set
                                  COMMIT;
 
          SELECT * FROM t;
          empty set
 
          COMMIT;
 
          SELECT * FROM t;
          ---------------------
          |    1    |    2    |
          ---------------------
 
Zurück
Oben