Zadejte hledaný výraz...

Duplicitní čísla – jak zadávat čísla do tabulky v MySQL databázi?

Marmir
verified
rating uzivatele
(5 hodnocení)
8. 9. 2017 12:01:57
Zdravím,
chtěl bych se zeptat, zda správně vytvářím nová čísla do tabulky v MySQL databázi.
Mají být navazující a nesmějí být duplicitní.
PRIMARY index je na ID s auto incrementem, proto nemůžu AI použít na CISLO.
Duplicity chodily od různých účtů, ale tento kód by měl fungovat pro všechny účty, je to tak?
Kód:
$r = mysqli_query($conn, "SELECT * FROM tabulka ORDER BY CISLO DESC");
if($zaznam = mysqli_fetch_array($r)) {
$cislo = $zaznam+1;
}
a $cislo uložim následně do db.
Je to správně?
8. 9. 2017 12:01:57
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299925
Marián
verified
rating uzivatele
(4 hodnocení)
8. 9. 2017 12:08:52
No minimalne treba pouzit LIMIT 1, nech to vzdy neziskava vsetky zaznamy, ale iba posledny.
alebo
s tym, ze CISLO by malo mat INDEX.
8. 9. 2017 12:08:52
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299924
hm
verified
rating uzivatele
(20 hodnocení)
8. 9. 2017 12:20:19
Pokud potrebujes dve ruzna neduplicitni cisla priradit jednomu zaznamu, tak mas spatne navrzenou databazi, protoze netusim k cemu bys neco takoveho potreboval (a neni nahoda ze to mysql bezne neumi)...
nicmene kdyz uz tak to uricte nedelej takhle pres php, ale vloz to jako subselect primo do insertu
"INSERT tabulka (sloupec1,sloupec2,cislo) VALUES ('data','data2',(SELECT max(cislo)+1 FROM tabulka))"
8. 9. 2017 12:20:19
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299923
nekunam
verified
rating uzivatele
8. 9. 2017 12:30:31
On to mysli tak, ze ked si zoberes napr. kuriersku spolocnost PPL.
V systeme ma tisice zakaznikov a kazdy z nich ma nejake ID pod ktorym pridava svoje zasielky do celkovej databazy, kde pridavaju svoje zasielky aj ostatni klienti PPL.
On chce zabranit tomu aby sa nevytvorilo rovnake cislo balika od 2 roznych klientov PPL.
8. 9. 2017 12:30:31
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299922
hm
verified
rating uzivatele
(20 hodnocení)
8. 9. 2017 12:39:31
Pokud ma spolecnou datbazi tak tenhle problem zkratka neexistuje... Pokud se chysta synchronizovat XY databazi, pak je jedine spravne reseni ziskavani noveho cisla od centralniho systemu (centralni tabulky) a tam opet, neni v zadnem pripade potreba generovat do jedne tabulky dve autoincrement cisla... to je proste cisty nesmysl...
Vzhledem k urovni kodu co uzivatel poslal zkratka prepdkladam, ze resi spatne nejaky jiny problem
8. 9. 2017 12:39:31
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299921
Napsal Marmir;1409994
Zdravím,
chtěl bych se zeptat, zda správně vytvářím nová čísla do tabulky v MySQL databázi.
Mají být navazující a nesmějí být duplicitní.
PRIMARY index je na ID s auto incrementem, proto nemůžu AI použít na CISLO.
Duplicity chodily od různých účtů, ale tento kód by měl fungovat pro všechny účty, je to tak?
Kód:
$r = mysqli_query($conn, "SELECT * FROM tabulka ORDER BY CISLO DESC");
if($zaznam = mysqli_fetch_array($r)) {
$cislo = $zaznam+1;
}
a $cislo uložim následně do db.
Je to správně?
A co tak SELECT max(CISLO)+1 as nove_cislo FROM tabulka ORDER BY CISLO DESC
a máš rovnou požadované číslo o 1 vyšší
8. 9. 2017 12:53:41
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299920
martinzsa
verified
rating uzivatele
(1 hodnocení)
8. 9. 2017 14:09:29
suhlas s Alesom...
nevidim logicky dôvod aby pre jeden zaznam existovali 2 neduplicitne cisla, je to proste chyba navrhu...
a ak to predsa len treba riesit tak isto nie na urovni php ale priamo v inserte vid priklad co dal ales.
8. 9. 2017 14:09:29
https://webtrh.cz/diskuse/duplicitni-cisla-jak-zadavat-cisla-do-tabulky-v-mysql-databazi#reply1299919
Pro odpověď se přihlašte.
Přihlásit