abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:33 | Komunita

    Dle analytics.usa.gov je za posledních 90 dnů 6,2 % přístupů k webových stránkám a aplikacím federální vlády Spojených států z Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Zajímavý článek

    Jak si zobrazit pomocí Chrome a na Chromiu založených webových prohlížečích stránky s neplatným certifikátem? Stačí napsat thisisunsafe.

    Ladislav Hagara | Komentářů: 3
    včera 00:33 | Bezpečnostní upozornění

    V repozitáři AUR (Arch User Repository) linuxové distribuce Arch Linux byly nalezeny a odstraněny tři balíčky s malwarem. Jedná se o librewolf-fix-bin, firefox-patch-bin a zen-browser-patched-bin.

    Ladislav Hagara | Komentářů: 13
    včera 00:22 | Komunita

    Dle plánu by Debian 13 s kódovým názvem Trixie měl vyjít v sobotu 9. srpna.

    Ladislav Hagara | Komentářů: 0
    19.7. 13:22 | Komunita

    Vývoj linuxové distribuce Clear Linux (Wikipedie) vyvíjené společností Intel a optimalizováné pro jejich procesory byl oficiálně ukončen.

    Ladislav Hagara | Komentářů: 1
    18.7. 14:00 | Zajímavý článek

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    18.7. 12:00 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 1
    17.7. 18:44 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).

    Ladislav Hagara | Komentářů: 1
    17.7. 16:11 | Nová verze

    Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 4
    17.7. 15:55 | Komunita

    Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.

    Ladislav Hagara | Komentářů: 6
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (24%)
     (22%)
     (4%)
     (6%)
     (2%)
     (4%)
     (4%)
     (33%)
    Celkem 49 hlasů
     Komentářů: 9, poslední dnes 15:56
    Rozcestník

    Dotaz: počítanie auto increment odznovu na začiatku roku

    30.8.2011 20:12 adrinko | skóre: 22
    počítanie auto increment odznovu na začiatku roku
    Přečteno: 697×
    dobrý deň, prosím Vás, videl som spoločnosť, ktorá automaticky čísluje objednávky na začiatku roku od jednotky (forma:rok+číslo.objednávky, napr 20101, 20102, atď). Predpokladám, že na to majú v databáze auto increment. Problém je, že keď si nastavím auto increment v db, tak aj po novom roku bude počítať ďalej a nezačne opäť od jednotky pre nový rok. Ja by som potreboval, aby prvý zápis v novom roku hneď začínal na jednotke a od nej ďalej počítal auto increment pre daný rok. Následne ak sa zmení rok a bude už 2012, tak nech zase počíta od jednotky pre tento rok.

    Dá sa teda nejak automaticky docieliť, aby skript a mysql vždy na začiatku roku začal počítať od nuly?

    P.S. možno sa to dá len tak urobiť, že napr. predpripravím tabuľky pre 2010, 2011, 2012, 2013, atď a skript sa podľa aktuálneho roku bude pripájať k tej ktorej tabuľke. Avšak toto by som musel manuálne robiť, no ja by som to rád zautomatizoval, aby nebolo nutné manuálne vytvárať tabuľky.

    Odpovědi

    30.8.2011 21:13 Kit
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    V MySQL je možné poslední ID přepsat jinou hodnotou, auto_increment bude pokračovat v nové řadě. Mohlo by to jít i triggerem.

    Další možností je použití složeného primárního klíče.

    O půlnoci na Nový Rok 2012 je možné časovačem vložit a hned zrušit záznam
    INSERT INTO objednavky (id) values (2012000);
    DELETE FROM objednavky WHERE id=2012000;
    
    Další vložený záznam bude mít číslo 2012001.

    Možností je víc. Pokud není nutné rozdělovat tabulku podle let z kapacitních důvodů, tak bych to nedělal.
    rADOn avatar 12.9.2011 23:02 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    na zmenu pocitadelka neni potreba takove nasili, da se to udelat ALTERem
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    Josef Kufner avatar 30.8.2011 21:20 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    Ne, na tohle auto increment není.

    Pokud chceš hezkou sekvenci, tak si ji musíš vygenerovat sám. Můžeš ale vložit do DB prázdný řádek, tím si nechat přidělit ID pomocí auto increment, a pak doplnit do řádku data, včetně vypočteného čísla objednávky.

    Nebo můžeš udělat SELECT MAX(cislo_objednavky) a z toho vygenerovat nové číslo. Poud by se pak insert nepovedl, tak vznikla duplicita a vygeneruješ si nové (zamykání ani transakce netreba).
    Hello world ! Segmentation fault (core dumped)
    31.8.2011 08:00 Ondra
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

    Buďto používat složený klíč jak je v příkladu (jeden sloupec s rokem a v druhém se Vám budou automaticky generovat čísla od začátku - toto je řešení automatické "na věčné časy"), nebo 1.ledna (januára) vždy spustit script, který udělá ALTER TABLE a nastaví autoincrement aby začínal od potřebné hodnoty. Co pro Vás bude lepší posuďte sám.
    5.9.2011 10:08 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    Ondro, ďakujem za názorný príklad. Tie zložené kľúče sú super. Mal by som ešte jednu otázočku. Nastavil som pri create table autoincrement na 200, ale aj tak mi čísluje v id od 1,2,3, atď. Skúšal som aj alter table a nastaviť to aj v phpmyadmin, ale stále čísluje v id od 1 namiesto od 201. Neviete náhodou, kde robím chybu?
    5.9.2011 10:20 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    uf, tak ešte jedna otázka: keď po vložení použíjem insert_id(), tak mi vráti posledné auto increment číslo. Ako to ale spraviť, aby mi vrátilo aj auto increment číslo zviazané s druhým parametrom skupiny, do ktorej som vkladal? chcel by som jednoznačne identifikovať vložený riadok... vďaka
    5.9.2011 13:55 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    teoreticky aj prakticky by mi malo stačiť vrátené auto increment číslo a následne si ho spárujem s vloženou skupinou a tak jednoznačne charakterizujem konkrétny riadok. :)

    už len zostáva vyriešiť, prečo keď pre tabuľku nastavím auto increment od povedzme 200, tak mi tak či tak zadáva do stĺpca pre auto increment čísla od 1,2,3...atď. prečo?
    5.9.2011 14:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    Odpovědí je:
    In this case, the generated value for the AUTO_INCREMENT column is calculated as MAX(auto_increment_column) + 1 WHERE prefix=given-prefix.

    Musíte, aspoň si to myslím, vložit první záznam a změnit mu hodnotu na 200 (a to pro každou skupinu/rok).
    Jinak je to podle mě cesta do pekel (ony jsou to takové pomůcky jako Danajské dary). Josef Kufner Vám tady psal návrh na transparentní řešení.
    PS: I kdyby jste použil „jen“ jednoduchý auto_increment sloupec, tak nastavení jeho startovací hodnoty, třeba na začátku roku, také není zrovna nejlepší, protože například InnoDB tabulky si tuto hodnotu neudrží při restartu serveru (po restartu se u InnoDB tabulek provede MAX(auto_increment_column) a podle toho se nastaví counter).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.9.2011 15:38 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: počítanie auto increment odznovu na začiatku roku
    vďaka. spravím to podľa riešenia od pána Kufnera, tak to bude pravdepodobne najlepšie, ako sa mi v daný moment dá. síce do skriptu budem musieť dať o jeden update riadku v db navyše, ale to nevadí. diky moc

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.