• User Newbie

    Simulare lock tabelle

    Ciao a tutti,

    Volevo porvi un quesito:
    Ho una tabella che mi contiene la prossima chiave univoca di altre tabelle, questo perchè ho necessità di sapere la prossima chiave da utilizzare a priori. La struttura è questa:

    CREATE TABLE caste1_indice (
    id_ind mediumint(8) unsigned NOT NULL auto_increment COMMENT 'Identificativo dell''indice',
    nome varchar(50) collate utf8_bin NOT NULL COMMENT 'Nome dell'indice',
    valore mediumint(8) NOT NULL COMMENT 'Prossimo Valore della chiave',
    tms_ins datetime NOT NULL COMMENT 'Timestamp di inserimento',
    tms_upd datetime NOT NULL COMMENT 'Timestamp di modifica',
    PRIMARY KEY (id_ind),
    UNIQUE KEY nome (nome)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Tabella degli indici'

    Il problema è che per conoscere il nuovo valore della chiave faccio prima una select seguita da un update, però questo potrebbe causare estrazione della stessa chiave più volte (e quindi andrei a inserire una chiave duplicata). L'hosting dove sono ospitate le tabelle non mi consente di creare tabelle InnoDB, esiste per caso qualche modo per poter essere sicuri che mi venga restituita sempre una chiave univoca?

    Vi faccio un esempio:
    La tabella che ho allegato sopra mi contiene nel campo nome il nome di una tabella supponiamo "caste1_foto" mentre nel campo valore il prossimo valore chiave di "caste1_foto".

    Quando l'utente compila il suo bel form io vado a richiedere alla tabella indice la nuova chiave per la tabella foto e poi vado a fare l'insert sulla tabella foto. Faccio questo perché ho bisogno di riservarmi già la chiave per effettuare delle operazioni con dei file (le foto appunto).

    Vorrei che l'utente non venisse bloccato ma semplicemente aspetta che si sblocchi la tabella indice.

    Grazie per la vostra disponibilità