Visualizzazione risultati 1 fino 4 di 4

Discussione: autoincrement in base a un altro campo

  1. #1
    Guest

    Predefinito autoincrement in base a un altro campo

    allora io ho una tabella di nome articoli cosi strutturata
    id | titolo | contenuto | sezione | value ecc ecc

    ho diverse sezioni come pillole e dossier e facendo un esempio mi viene una tabella di questo tipo
    1 | cosmo | bla bla bal| pillole | 1

    2 |viaggio nell'immenso |bla bla bla| dossier | 1

    3 |tempo e spazio |bla bla bla | pillole | 2

    io vorrei che il campo value dove vi è la sezione pillole si autoincrementasse...
    quindi quando inseriro un nuovo articolo di sezione pillole vorrei che value assumi 3...ho navigato un pò e ho letto che bisogna fare un trigger di questo tipo
    delimiter $$

    create trigger progressivo before insert on tabella
    for each row begin
    if (select count(*) from tabella where anno = new.anno) = 0 then
    set new.id = 1;
    else
    set new.id = (select max(id) from tabella where anno = new.anno) + 1;
    end if;
    end;
    $$

    delimiter ;
    fatte le opportune modifiche dove va inserito il codice nella piattaforma di altervista per la gestione del mysql?

  2. #2
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    Eh...quel codice non mi sembra php quindi non può essere usato su altervista...

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Credo che il secondo esempio della documentazione sia quello che ti serve: http://dev.mysql.com/doc/refman/4.1/...increment.html

    In pratica dovresti dichiarare come chiave primaria la coppia (sezione, value) - non aggiungere l'ID - e definire come campo AUTO_INCREMENT il solo campo value. Il risultato sarà un campo value che incrementerà da solo, ma limitatamente per lo stesso valore nel campo sezione. Un nuovo valore per sezione causerà l'assegnamento della chiave iniziale (di solito 1) per value.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Credo che il secondo esempio della documentazione sia quello che ti serve: http://dev.mysql.com/doc/refman/4.1/...increment.html

    In pratica dovresti dichiarare come chiave primaria la coppia (sezione, value) - non aggiungere l'ID - e definire come campo AUTO_INCREMENT il solo campo value. Il risultato sarà un campo value che incrementerà da solo, ma limitatamente per lo stesso valore nel campo sezione. Un nuovo valore per sezione causerà l'assegnamento della chiave iniziale (di solito 1) per value.

    Stammi bene...
    grazie del suggerimento quindi tolgo id e metto come hai detto tu vediamo cosa succede..

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •