Ach Boze
Odecitani Autoincrementu je naprosto standardni pouzivany a fungujici postup. Proc se taky nezkusite podivat do manualu k MySQL ?
Je to hlavne mnohem rychlejsi nez select max, protoze ta hodnota pocitadla je udrzovana v metadatech v systemovych tabulkach - napr. select max z tabulky o nekolika stovkach tisic zaznamu bude dost pomala operace (samozrejme ze ten casovy rozdil v nejakych tabulkach s mensim objemem dat prilis patrny neni).
V cem mate chybu to nevim, protoze v PHPku nedelam (a ani doufam delat nikdy nebudu
). Jestli vam ty prikazy nejdou najednou, tak proc je tam nepustite postupne ? Zalezi jak to ma implementovano konkretni jazyk (napr JDBC ma funkce pro spusteni cele prikazove davky tak pro vykonani jednoho SQL prikazu).
Ja mam treba v Jave pro praci s MySQL napsanou jednoduchou statickou funkci, ktera funguje bez problemu:
Kód:
public static int execIdentInsertI(String _sInsert, Connection _con) {
try {
int ret = -1;
if( (_sInsert==null)||(_con==null) ) return ret;
Statement stat = _con.createStatement();
stat.executeUpdate(_sInsert);
java.sql.ResultSet rs = stat.executeQuery("select LAST_INSERT_ID();");
if(rs.next()) ret = rs.getInt(1);
rs.close();
stat.close();
return ret;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}