Autor | Zpráva | ||
---|---|---|---|
MartinR Profil |
#1 · Zasláno: 4. 4. 2012, 21:58:17
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 |
#3 · Zasláno: 5. 4. 2012, 00:11:15
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; |
||
Časová prodleva: 14 let
|
0