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 05:22 | Nová verze

    Byla vydána OpenMandriva Lx 6.0 s kódovým názvem Vanadium. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 01:44 | Zajímavý článek

    CSIRT.CZ, český národní CERT provozovaný na základě veřejnoprávní správní smlouvy společností CZ.NIC, shrnuje patnáct let svého fungování pod tímto sdružením: CSIRT.CZ – 15 let ve sdružení CZ.NIC.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Nová verze

    Commodore OS Vision (Wikipedie) byl vydán v nové verzi 3.0. Jedná se o linuxovou distribuci určenou pro fanoušky značky Commodore. Předinstalována je na počítačích Commodore 64x.

    Ladislav Hagara | Komentářů: 2
    včera 16:22 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 208. brněnský sraz, který proběhne v pátek 25. dubna od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1.

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

    Ve svém článku Getting Forked by Microsoft popisuje autor programu Spegel svoji nepříjemnou zkušenost s firmou Microsoft. Firma ho kontaktovala a zpočátku to vypadalo, že by mohlo jít o oboustranně prospěšnou spolupráci, autor tedy ochotně odpovídal na jejich otázky ohledně architektury programu a pomáhal jim ho zprovoznit. Následně komunikace ze strany Microsoftu utichla. Autor předpokládal, že zřejmě došlo ke změně priorit a firma

    … více »
    xkucf03 | Komentářů: 12
    včera 01:33 | IT novinky

    Společnost Notion Labs stojící za softwarovou platformou pro spolupráci Notion (Wikipedia) oficiálně představila (YouTube) poštovního klienta Notion Mail. Aktuálně funguje pouze nad Gmailem.

    Ladislav Hagara | Komentářů: 3
    21.4. 12:44 | Nová verze

    Byla vydána nová verze 9.12 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    20.4. 03:55 | Nová verze

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    19.4. 19:44 | Komunita

    Ubuntu 25.10 bude (𝕏) Questing Quokka (pátrající klokan quokka).

    Ladislav Hagara | Komentářů: 0
    19.4. 11:55 | Zajímavý software

    Ubisoft uvolnil zdrojové kódy softwaru Chroma pro simulaci barvosleposti pro vývojáře počítačových her. K dispozici jsou na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (10%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (2%)
    Celkem 420 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    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: 695×
    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.