Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: MySQL, Unidac und AutoInc

  Alt 21. Jun 2015, 08:55
Also zuerst die Warnung, dann die Anwort:
Mit dem folgenden Vorschlag kannst Du in Teufelsküche kommen, wenn es nicht wasserdicht umgesetzt ist und es ist durchaus möglich, dass es gar nicht geht. Das musst Du also sauber prüfen, ob es theoretisch gemeinsam mit den Delphikomponenten Deinen Anwendungsfall abdeckt, ob es das praktisch auch tut (Mehrbenutzerumgebung, ...) und in Betracht ziehen, dass es keine wirkliche Lösung ist, denn normalerweise werden für soetwas andere Verfahren verwendet, die mysql aber nicht bietet.
Wenn überhaupt, eignet sich der Kram unten eher für SQL Scripts, mglw. kann das auch innerhalb Deiner Komponenten transaktionssicher durchgeführt werden.

Du kannst Dir 1. in mysql aus dem Information Schema den nächsten Auto Increment Wert je Tabelle holen und Du kannst 2. die zuletzt vergebene ID abfragen. Daraus kannst Du ggF. das zusammensetzen, was Du brauchst:
Nächste AutoID
Code:
SELECT AUTO_INCREMENT
  FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA = 'myDB'
   AND TABLE_NAME = 'myTable';
Code:
LAST_INSERT_ID(); /*bzw*/ SELECT LAST_INSERT_ID();
Gruß, Jo
  Mit Zitat antworten Zitat