Autor Zpráva
MartinR
Profil
zdravím,
chci dosáhnout toho, abych mel hodnotu id vždy závislou na roce. V případě že půjde o první id v konkretním roce, hodnota se vrátí na 1. No nastíním to :
201101
201102
201103
201201
201301
..
..

Chtěl bych to vyřešit na úrovni databáze, ale nevim jak napsat alter table aby akceptoval hodnotu @ai
    set @ai=concat(year(now()),'01');
    select @ai; -- zobrazi spravne 201201
    ALTER TABLE objednavky AUTO_INCREMENT = @ai; -- nefunguje
    ALTER TABLE objednavky AUTO_INCREMENT = select @ai; -- nefunguje
pcmanik
Profil
MartinR:
Nemozes menit hodnotu auto increment, ta vzdy zacina od 1 a je to tak spravne. Mas nejak dovod, vyzadovat to co chces? Nieje lepsie pridat dalsi stplec s datumom?

Jedine tam ten riadok mozes rucne vlozit s takym id, ale nemozes len tak zacat pocitat od ineho cisla.
Kajman
Profil
pcmanik:
ale nemozes len tak zacat pocitat od ineho cisla

Může.

MartinR:
Asi se bude muset použít prepare
set @ai=concat(year(now()),'01');
set @sql=CONCAT('ALTER TABLE `objednavky` AUTO_INCREMENT = ',@ai);
PREPARE aistat FROM @sql;
EXECUTE aistat;
DEALLOCATE PREPARE aistat;
MartinR
Profil
Kajman:
Tak to je parada Kajmane, diky. Prepare jsem taky zkousel, ale jak vidis, mel jsem blbe syntaxi.

set @ai=concat(year(now()),'000002');
@statement2 = CONCAT("ALTER TABLE objednavky AUTO_INCREMENT = @ai;");
prepare stmt2 FROM @statement2;
EXECUTE stmt2;

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: