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 15:33 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.8.

    Ladislav Hagara | Komentářů: 2
    dnes 14:22 | IT novinky

    Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.

    Ladislav Hagara | Komentářů: 5
    dnes 05:55 | IT novinky

    Společnost OpenAI představila GPT-5 (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Nová verze

    Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | IT novinky

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 8
    včera 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

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

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Nová verze

    Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (45%)
     (21%)
     (4%)
     (6%)
     (3%)
     (1%)
     (1%)
     (19%)
    Celkem 302 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: MySQL a záhadně propojené sloupce

    Barbucha.eu avatar 2.6.2008 08:06 Barbucha.eu | skóre: 23 | Chrást u Plzně
    MySQL a záhadně propojené sloupce
    Přečteno: 336×
    Mám tabulku a v ní se mi děje cosi, čemuž moc nerozumím.
    create table logins
    (
    	logId		int unsigned		not null primary key auto_increment,
    	userId		tinyint unsigned	not null, /* FK */
    	login		timestamp		not null,
    	logout		timestamp,
    	hostId		smallint unsigned	not null, /* FK */
    	expired		bit			not null default 1,
    	foreign key (userId) references users(userId) on delete cascade,
    	foreign key (hostId) references hosts(hostId) on delete cascade
    ) engine=innodb;
    V té tabulce když provedu změnu dvou buněk v jednom řádku, tak se v onom řádku změní buňky tři. Myslel jsem si, že chyba je někde v aplikaci, nebo uložené proceduře, protože jak je už z tohoto výpisu zřejmé, doba přihlášení a odhlášení je vždy stejná. Tak jsem poslední hodnotu, která ještě nebyla nastavována, upravil ručně.
    mysql> select * from logins;
    +-------+--------+---------------------+---------------------+--------+---------+
    | logId | userId | login               | logout              | hostId | expired |
    +-------+--------+---------------------+---------------------+--------+---------+
    |     1 |      3 | 2008-06-01 17:20:02 | 2008-06-01 17:20:02 |      1 |         |
    |     2 |      3 | 2008-06-01 17:21:25 | 2008-06-01 17:21:25 |      1 |         |
    |     3 |      1 | 2008-06-01 17:22:12 | 2008-06-01 17:22:12 |      1 |         |
    |     4 |      2 | 2008-06-01 17:26:12 | 0000-00-00 00:00:00 |      1 |       1 |
    +-------+--------+---------------------+---------------------+--------+---------+
    4 rows in set (0.00 sec)
    Spustil jsem samotný příkaz update zkopírovaný z uložené procedury.
    mysql> update logins set expired=0,logout=current_timestamp where logId=4;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    Výsledek mě dosti zarazil. Posuďte sami.
    mysql> select * from logins;
    +-------+--------+---------------------+---------------------+--------+---------+
    | logId | userId | login               | logout              | hostId | expired |
    +-------+--------+---------------------+---------------------+--------+---------+
    |     1 |      3 | 2008-06-01 17:20:02 | 2008-06-01 17:20:02 |      1 |         |
    |     2 |      3 | 2008-06-01 17:21:25 | 2008-06-01 17:21:25 |      1 |         |
    |     3 |      1 | 2008-06-01 17:22:12 | 2008-06-01 17:22:12 |      1 |         |
    |     4 |      2 | 2008-06-01 17:26:25 | 2008-06-01 17:26:25 |      1 |         |
    +-------+--------+---------------------+---------------------+--------+---------+
    4 rows in set (0.00 sec)
    Přestože nad tabulkou není nikde vytvářen žádný trigger a v příkazu update se při odhlášení nastavují jen sloupce expired a logout, změní se i hodnota ve sloupci login. Nedovedu si takové záhadné chování MySQL-serveru vysvětlit. Čím to může být, že při vkládání se sloupce chovají normálně a při úpravě se chovají, jakoby byly jen jeden?
    Co Bůh rozbil, člověk neopravuj!

    Řešení dotazu:


    Odpovědi

    2.6.2008 09:17 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: MySQL a záhadně propojené sloupce
    Zkusil bych si tu samou tabulku (bez FK) vytvořit na nějaké úplně čisté databázia porovnat, zda se to bude chovat stejně. Ať víte, kterým směrem pátrat – zda je to problém právě té jedné instance vaší databáze, nebo zda se tak chová MySQL vždy.
    Dalibor Smolík avatar 2.6.2008 09:35 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
    Rozbalit Rozbalit vše Re: MySQL a záhadně propojené sloupce
    Zkusil jsem si takovou tabulku vytvořit, změny se projevují podobně (změna v obou polích při zadání změn jen v jednom z nich) - není to právě vlastnost pole typu timestamp?
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    Řešení 1× (Barbucha.eu (tazatel))
    2.6.2008 09:35 Bilbo
    Rozbalit Rozbalit vše Re: MySQL a záhadně propojené sloupce
    Strucne receno, sloupec typu TIMESTAMP se updatuje sam a to na hodnotu kdy bylo naposledy s radkem hybano, proste takove automaticke datum posledni zmeny - pokud mu neni prirazena explicitne jina hodnota (coz je feature a ne bug :)

    Presne je to chovani popsano v manualu: http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

    Ve starsich verzich (4.1 a starsi) se to chovani pak jetse trochu lisi od nejnovejsi.
    2.6.2008 09:42 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: MySQL a záhadně propojené sloupce
    Přesně tak. Autor asi chtěl použít typ DATETIME.

    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.