Ahoj,
potřebuji poradit, jak přidávat do tabulky automaticky číslo id. Existuje v mysql něco jako datový typ autoincrement?
Zkoušel jsem podle Koska
SELECT Max(id)+1 FROM tabulka
a potom normálně přes insert.
Na localhostu bez problémů, ale tady mi to nějak nejde.
Neumíte to někdo nějak lépe?
existuje ..
při vytvoření tabulky např takhle
id INT NOT NULL AUTO_INCREMENT
left join možná... ale jednodušší je autoincrement, jak řekl Mike.
<HTML><i>Zkoušel jsem podle Koska
SELECT Max(id)+1 FROM tabulka</i>
to jako ze to Kosek radil misto autoincrementu???</HTML>
;) ten clovek chce "A" a vysvetluje "B"
Mám taky problém s Id. Myslel jsem si, že při vloženído tabulky to hodí vždy Id o jedno větší než bylo předchozí. Pokud však něco vložím a pak to smažu (například za příspěvek 104 dám 105, který smažu) tak jsem si myslel, že se mi při dalším vložení opět použije číslo 105. Pravda to však není, protože se mi použije číslo 106. Je to normální? Co bych měl upravit, aby se používalo opravdu poslední volné.
Je to normální.
http://www.webzdarma.cz/forum/read.php?f=2&i=15707&t=15707
http://www.webzdarma.cz/forum/read.php?f=2&i=15438&t=15427
IMHO je nejlepší v případech, kdy se bude mazat, autoincrement nepoužívat a číslovat si to sám, žádný problém to není a je to alespoň flexibilní podle nastálé situace. autoincrement je IMHO dobrý tak akorát do logu apod.
Jakub, jo normal. A max(id)+1 nefunguje, pokud tam nic nemáš. Tedy max(id) je null, k tomu se těžko přičítá 1. V postgresu je prima fce coalesce(), která z n parametrů vrátí první, který není null. Věřím, že v MySQL je něco podobného.
Ale nevidím důvod nepoužívat autoincrement, i když v indexu budou ďury. To přece nikomu nevadí, ne?
Teď už ne :-) Už jsem to vyřešil malou úpravou zdrojáku, takže to opravdu nevadí.