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

    Byla vydána nová verze 4.6 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

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

    Byla vydána nová verze 3.23.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opravuje 11 bezpečnostních chyb.

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

    Španělský softwarový inženýr oznámil, že se mu podařilo na dálku ovládat sedm tisíc robotických vysavačů po celém světě. Upozornil tak na slabé kybernetické zabezpečení těchto technologií a jejich možné a snadné zneužití. Nesnažil se hacknout všechny robotické vysavače po světě, ale pouze propojil svůj nový DJI Romo vysavač se zařízením Playstation. Aplikace podle něj ihned začala komunikovat se všemi sedmi tisíci spotřebiči a on je

    … více »
    Ladislav Hagara | Komentářů: 5
    dnes 03:33 | Humor

    Momo je fenka cavapoo, která svými náhodnými stisky kláves bezdrátové klávesnice vytváří jednoduché počítačové hry. Technicky to funguje tak, že Raspberry Pi s připojenou bluetooth klávesnicí posílá text do Claude Code, který pak v Godotu píše hry a sám je i testuje pomocí screenshotů a jednoduchých simulovaných vstupů. Za stisky kláves je Momo automaticky odměňována pamlsky. Klíčový je pro projekt prompt, který instruuje AI, aby i

    … více »
    NUKE GAZA! 🎆 | Komentářů: 24
    dnes 02:22 | Nová verze

    GNU awk (gawk), implementace specializovaného programovacího jazyka pro zpracování textu, byl vydán ve verzi 5.4.0. Jedná se o větší vydání po více než dvou letech. Mezi četnými změnami figuruje např. MinRX nově jako výchozí implementace pro regulární výrazy.

    |🇵🇸 | Komentářů: 0
    včera 16:22 | IT novinky

    Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.

    NUKE GAZA! 🎆 | Komentářů: 6
    včera 15:55 | Nová verze

    Byl vydán Mozilla Firefox 148.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově lze snadno povolit nebo zakázat jednotlivé AI funkce. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 148 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    včera 12:44 | Nová verze

    Byla vydána nová verze 22.1.0, tj. první stabilní verze z nové řady 22.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools a Libc++.

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

    X86CSS je experimentální webový emulátor instrukční sady x86 napsaný výhradně v CSS, tedy bez JavaScriptu nebo dalších dynamických prvků. Stránka 'spouští' assemblerovový program mikroprocesoru 8086 a názorně tak demonstruje, že i prosté CSS může fungovat jako Turingovsky kompletní jazyk. Zdrojový kód projektu je na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 6
    včera 12:11 | Nová verze

    Po šesti letech byla vydána nová verze 1.3 webového rozhraní ke gitovým repozitářům CGit.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (12%)
     (26%)
    Celkem 956 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Nelze změnit typ pole na not null - mysql

    Dalibor Smolík avatar 27.9.2019 09:56 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
    Nelze změnit typ pole na not null - mysql
    Přečteno: 543×
    Zdravím, potřeboval bych u Debianu 10 opravit tabulku
    MariaDB [prace]> alter table kontrakt modify cenaeurzaksk float not null;
    ERROR 1265 (01000): Data truncated for column 'cenaeurzaksk' at row 1571
    MariaDB [prace]>
    V tomto sloupci měním pouze NULL za not null, nic víc.
    v předchozí verzi mysql toto nebyl problém. Díky za tip ..
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.

    Odpovědi

    27.9.2019 14:26 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Jsi si jisty, ze v tom sloupecku zadna NULL hodnota v tuhle chvili neni?
    27.9.2019 15:29 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Proč vlastně musí být cena NOT NULL? Co tam dáš, když cenu nebudeš znát?

    Evidentně se v tom sloupci nějaké NULL vyskytuje a proto databáze nedovolí změnu.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Dalibor Smolík avatar 27.9.2019 16:10 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: Nelze změnit typ pole na not null - mysql
    Pokud zadávám hodnoty ručně do databáze, změna proběhne. Ale přes PHP 7.3 změna nikoliv, pokud zadávám číslo. Změna se neprovede. V PHP 5.5 a minulé verze databáze vše fungovalo, jak má. Nevím přesně, kde se změnila pravidla.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    27.9.2019 16:28 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    S tím přece NULL/NOT NULL nemá nic společného.

    Viděl bych to spíš na chybné používání db ovladače. Používáš MySQLi nebo PDO? Používáš prepared statements? Vkládáš tam čísla jako string nebo float?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Dalibor Smolík avatar 27.9.2019 16:51 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: Nelze změnit typ pole na not null - mysql
    Používám mysqli. Čísla tam vkládám jako string. Teď již u toho nejsem, trochu to prostuduji a pak dám vědět. Budu až v pondělí.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    27.9.2019 16:56 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    V tom případě může být problém desetinná čárka vs. desetinná tečka.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    27.9.2019 15:32 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Ještě dodávám, že pro finanční hodnoty se nepoužívá typ float, ale decimal.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    27.9.2019 16:59 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Dalibor Smolík avatar 30.9.2019 18:12 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: Nelze změnit typ pole na not null - mysql
    Ono to v podstatě funguje takto
    alter ignore table kontrakt change column cena cena decimal(6,2) not null dafault 0;
    ale v předchozí verzi nebylo potřeba takové změny provádět. Ale chovají se jinak i funkce php, takže se s tím trochu peru.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    30.9.2019 18:31 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Zrovna u ceny bych NOT NULL nedával.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    1.10.2019 07:46 j
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    On se ale pocet (idealne taky null) tim nullem v cene dobre nasobi, vis? Jinak receno, cena urcite muze byt nulova nebo i zaporna, ale rozhodne ne null.

    Pokracovani muze vypadat taky moc hezky, to kdyz mas trebas na fakture 30 polozek, a jedna z nich je null, tak se to uzasne scita. Tohle miva obzvlast vypeceny chovani (kazda databaze jinak) - klidne z toho vypadne "celkem 0" (nebo zase null). Jinak receno, zakaznik dostane zbozi, a system je spokojeny i bez placeni, protoze uhradit zbyva 0/null ...

    A jasne, da se to osefovat, kdyz do kazdyho jednoho dotazu neustale ladujes neco na tema isnull(cena,0), coz ale neni reseni, protoze ty nevis, jestli ta cena vazne ma byt nulova. To uz je z pohledu systemu lepsi tam naladovat isnull(cena, 10000000000000), protoze to se aspon prevazne ten, co to ma zaplatiti, ozve. Nic to ale nemeni na veci, ze cena by nikdy null byt nemela, tak proc to nevynutit primo nastavenim pole.
    1.10.2019 08:36 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Pokiaľ je cena neznáma (teda NULL), tak by aplikácia nemala poskytnúť zakúpenie položky.
    1.10.2019 17:23 j
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    To je mozny, a osefujes to na jednom miste, jenze na ta data koukas jeste ze 30 jinych mist.

    Neboj, na podobny vifikundace narazim da se rict denne. To se trebas takhle podivas po pole, a vidis 1,2,3,4, 6,12, 16, ... a reknes si jasne, je to cislo, takze napises ... where pole = 12, a za 1/2 roku (nebo taky za 10 let) ti zacne cosi kdesi hlasit nejaky hruzostrasny chyby ... protoze to pole je varchar(2), a nekdo vymyslel, ze tam nekde bude trebas A (ktery je tam klidne i tech 10 let), a tvoje uzasna databaze nezvladne implicitni konverzi (pricemz predchozi verze s tim problem nemela) => neumi z 12 udelat '12'.

    Typicky se tohle projevuje pochopitelne po vsemoznych upgradech, specielne kdyz nejaka dobra duse mysli na hentu "bezpecnost".

    Pripadne jeste krasnejsi je vzdycky deleni nulou ... Protoze ty sice mas x/y where y<>0, ale tvuj uzasnej databazovej endzajn to udela (logicky, jak jinak) opacne, nejdriv vsechno vydeli, a teprve pak filtruje. To si pak rikas, ze tu databazi nemoh navrhovat nikdo jinej nez zmrd s 10ti titulama. Vubec nejkrasnejsi je to pak v situaci, kdy ti tvoje vypecena databaze pokazdy pouzije jinej execution plan, takze se to deje jen nekdy a nekomu.

    Pak samozrejme vymejslis zhuverilosti jako je select v selectu (pripadn selfjoin, nebo jeste hur, vsemozny temptable), abys to dokopal k cinnosti kterou chces ty.

    Dalibor Smolík avatar 1.10.2019 13:49 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: Nelze změnit typ pole na not null - mysql
    No jo, pořád :-)
    Je mi to jasné. Databázi jsem v podstatě dával dohromady kolem roku 2001, od té doby jsem toho tam moc neměnil. Je mi jasné, že u cen (a i u jiných údajů, kde má být číslo) by NULL být nemělo, jde mi jen o to, abych to zpětně správně nastavil.
    Pole pro ceny v té době bylo v různých měnách, vyplňovalo se jen podle skutečné měny (tenkrát byla i marka a šilink), zbytek zůstal bez údajů a teď to systém vyžaduje.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    1.10.2019 17:46 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    V tom případě bys tam neměl mít DEFAULT 0, ale nějakou hodně nesmyslnou hodnotu, která bude bít do očí. Jinak se ti bude stávat, že nějaké zboží budeš prodávat za nulovou cenu.

    NULL se však chová o něco lépe, protože ti přímo signalizuje, že v tom poli je nesmysl a to při jakémkoli čtení či jiné manipulaci.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Dalibor Smolík avatar 2.10.2019 08:28 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: Nelze změnit typ pole na not null - mysql
    Tohle nehrozí, protože při fakturaci zadáváme cenu u každé položky zvlášť. Nemají totiž pevné ceny, které by byly zafixovány přímo v databázi u konkrétního výrobku a jen část výrobků se opakuje. Jde jen o měnu - Kč nebo EUR. A tam by mohlo dojít (dnes už jen teoreticky :-)) k uvedení NULL do jednoho ze sloupců.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    1.10.2019 15:30 Michal
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    To sis vycucal z prstu ne? Pri scitani hodnot z nichz jedna je null ti kazda databaze vrati null, coz je spravny vysledek. Pokud nejaka vrati neco jineho (jako 0 nebo nedej Boze soucet se zignorovanim te null polozky tedy jako kdyby null=0) ihned - nahlasit jako bug.
    1.10.2019 16:02 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    Tak jsem udělal jednoduchý test na oracle a myslq a pokud dělám sum na sloupci, kde jsou null hodnoty, tak se chovají jako 0.
    1.10.2019 17:50 j
    Rozbalit Rozbalit vše Re: Nelze změnit typ pole na not null - mysql
    To skoro vypada soudruhu, ze si vzivote zadnou databazi nevidel, protoze tu meles uplne z cesty.

    mssql:
    select 1 + null ... null
    select sum() ... 1
    
    mysql dtto ... asi zazrak.

    A to tomhle vis zjevne naprosty kulovy:

    https://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-nulls-transact-sql?view=sql-server-2017

    Aneb jedna z moznosti, jak vyrazne zmenit prave chovani null.

    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.