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í
×
    včera 17:22 | IT novinky

    Byla představena nová verze modelu Claude Opus 4.6 od společnosti Anthropic. Jako demonstraci možností Anthropic využil 16 agentů Claude Opus 4.6 k vytvoření kompilátoru jazyka C, napsaného v programovacím jazyce Rust. Claude pracoval téměř autonomně, projekt trval zhruba dva týdny a náklady činily přibližně 20 000 dolarů. Výsledkem je fungující kompilátor o 100 000 řádcích kódu, jehož zdrojový kód je volně dostupný na GitHubu pod licencí Creative Commons.

    NUKE GAZA! 🎆 | Komentářů: 11
    včera 16:44 | Komunita

    Kultovní britský seriál The IT Crowd (Ajťáci) oslavil dvacáté výročí svého prvního vysílání. Sitcom o dvou sociálně nemotorných pracovnících a jejich nadřízené zaujal diváky svým humorem a ikonickými hláškami. Seriál, který debutoval v roce 2006, si i po dvou dekádách udržuje silnou fanouškovskou základnu a pravidelně se objevuje v seznamech nejlepších komedií své doby. Nedávné zatčení autora seriálu Grahama Linehana za hatecrime však vyvolává otázku, jestli by tento sitcom v současné Velké Británii vůbec vznikl.

    NUKE GAZA! 🎆 | Komentářů: 5
    včera 13:33 | IT novinky

    Společnost JetBrains oznámila, že počínaje verzí 2026.1 budou IDE založená na IntelliJ ve výchozím nastavení používat Wayland.

    Ladislav Hagara | Komentářů: 4
    včera 11:22 | IT novinky

    Společnost SpaceX amerického miliardáře Elona Muska podala žádost o vypuštění jednoho milionu satelitů na oběžnou dráhu kolem Země, odkud by pomohly zajistit provoz umělé inteligence (AI) a zároveň šetřily pozemské zdroje. Zatím se ale neví, kdy by se tak mělo stát. V žádosti Federální komisi pro spoje (FCC) se píše, že orbitální datová centra jsou nejúspornějším a energeticky nejúčinnějším způsobem, jak uspokojit rostoucí poptávku po

    … více »
    Ladislav Hagara | Komentářů: 21
    včera 11:11 | Nová verze

    Byla vydána nová verze 2.53.0 distribuovaného systému správy verzí Git. Přispělo 70 vývojářů, z toho 21 nových. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Komunita

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 216. sraz, který proběhne v pátek 20. února od 18:00 v Red Hat Labu (místnost Q304) na Fakultě informačních technologií VUT v Brně na ulici Božetěchova 1/2. Tématem srazu bude komunitní komunikační síť MeshCore. Jindřich Skácel představí, co je to MeshCore, předvede nejrůznější klientské zařízení a ukáže, jak v praxi vypadá nasazení vlastního repeateru.

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

    Byla vydána nová major verze 9.0 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.2. 13:55 | IT novinky

    Hodnota Bitcoinu, decentralizované kryptoměny klesla pod 70 000 dolarů (1,44 milionu korun).

    Ladislav Hagara | Komentářů: 13
    5.2. 13:22 | IT novinky

    Valve z důvodu nedostatku pamětí a úložišť přehodnocuje plán na vydání zařízení Steam Controller, Steam Machine a Steam Frame: „Cílem tedy stále zůstává vydat všechna tři nová zařízení v první polovině letošního roku, ale přesná data a ceny jsou dvě věci, na kterých usilovně pracujeme a jsme si dobře vědomi toho, jak rychle se v tomto ohledu může vše změnit. Takže ač dnes žádné zveřejnitelné údaje nemáme, hned jak plány finalizujeme, budeme Vás informovat.“

    Ladislav Hagara | Komentářů: 6
    5.2. 03:11 | Komunita

    Do 20. února lze hlasovat pro wallpapery pro Ubuntu 26.04 s kódovým názvem Resolute Raccoon.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (25%)
     (3%)
     (4%)
     (2%)
     (12%)
     (30%)
    Celkem 782 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: SQLite rowid nebo id

    5.12.2022 14:28 Jirka
    SQLite rowid nebo id
    Přečteno: 2107×
    Ahoj, parsuji nějaká data a výsledkem by měl být textový SQL soubor, který se později nahraje do SQLite. V datech je nějaký popis jako krátký text a k němu může být několik obrázků (ale nemusí). Zhotovil jsem tuto jednoduchou databázi:
    CREATE TABLE popis (
        id    INTEGER PRIMARY KEY AUTOINCREMENT,
        text TEXT
    );
    CREATE TABLE popis_obrazek (
        id    INT NOT NULL,
        src   TEXT NOT NULL,
        FOREIGN KEY(id) REFERENCES popis(id)
    );
    
    A výsledkem parsování je takovýto soubor:
    INSERT INTO popis (text) VALUES("Jakysi popis");
    INSERT INTO popis_obrazek (id, src) VALUES((SELECT seq FROM sqlite_sequence WHERE name='popis'), 'obrazek1.jpg');
    INSERT INTO popis_obrazek (id, src) VALUES((SELECT seq FROM sqlite_sequence WHERE name='popis'), 'obrazek2.jpg');
    
    A všechno pracuje jak má. Každý obrázek má id popisu, ke kterému patří. Napadlo mě vyhodit z tabulky popis ten sloupec id, vždyť je tam už rowid. Ale jak s ním pracovat v insertech, vždyť po prvním insertu do popis_obrazek se last_insert_rowid() změní. Našel jsem, že by to šlo oklikou přes pomocnou tabulku, ale zdá se mi to zbytečné. Je na to nějaký fígl, nebo je lepší nechat id a nepoužívat rowid? Díky za inspiraci.

    Odpovědi

    5.12.2022 15:16 X
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    Rekl bych ,ze to 'id' je v obou pripadech zbytecne. K tomu vkladani muzes pouzit 'SELECT last_insert_rowid()' a teoreticky transakci, nebo sekvenci INSERT .. VALUE (A,B), (C,D);.
    5.12.2022 16:02 Jirka
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    Ano, sekvence v INSERT - to je řešení. Upravil jsem to takto:
    CREATE TABLE popis (
        text TEXT
    );
    CREATE TABLE popis_obrazek (
        id    INT NOT NULL,
        src   TEXT NOT NULL,
        FOREIGN KEY(id) REFERENCES popis(rowid)
    );
    
    INSERT INTO popis (text) VALUES("Jakysi popis");
    INSERT INTO popis_obrazek (id, src) VALUES((SELECT LAST_INSERT_ROWID()), 'obrazek1.jpg'), ((SELECT LAST_INSERT_ROWID()), 'obrazek2.jpg');
    
    To id v tabulce popis_obrazek tam být musí, identifikuje, ke kterému popisu obrázek patří. Děkuji mnohokráte za radu.
    5.12.2022 17:53 .
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    To je řešení ve stylu "jak si rozbít data". Zkuste si přečíst třeba tohle.
    5.12.2022 18:35 X
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    Nesmysl. Misto straseni to zkus priste realne podlozit. Mimochodem, informace na odkazu nijak tazatelovo reseni neovlivnuje.
    5.12.2022 18:43 Jirka
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    Aha, to by mohl být problém. Takže zpět na id, ovšem se sekvencí v INSERTu.
    9.12.2022 12:31 Tom K | skóre: 22
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    Nepoužíval bych LAST_INSERT_ROWID, ale:
    INSERT INTO popis VALUES('Jakysi popis') RETURNING rowid; 
    A pozor, bez:
    PRAGMA foreign_keys = ON;
    nebude fungovat kontrola referenční integrity.
    echo -n "u48" | sha1sum | head -c3; echo
    30.12.2022 12:54 ChatBot GPT-3
    Rozbalit Rozbalit vše Re: SQLite rowid nebo id
    Ano, v SQLite můžete použít speciální sloupec rowid, který zajišťuje unikátní identifikátor pro každý řádek v tabulce. Můžete tedy vytvořit tabulku popis_obrazek bez sloupce id a namísto toho použít sloupec rowid ze tabulky popis.

    Vytvořte tabulku popis_obrazek takto:
    CREATE TABLE popis_obrazek (
        popis_rowid INTEGER NOT NULL,
        src TEXT NOT NULL,
        FOREIGN KEY(popis_rowid) REFERENCES popis(rowid)
    );
    
    Následně můžete vkládat do tabulky popis_obrazek pomocí příkazu INSERT s výrazem last_insert_rowid() pro získání posledního vloženého rowid:
    INSERT INTO popis (text) VALUES("Jakysi popis");
    INSERT INTO popis_obrazek (popis_rowid, src) VALUES(last_insert_rowid(), 'obrazek1.jpg');
    INSERT INTO popis_obrazek (popis_rowid, src) VALUES(last_insert_rowid(), 'obrazek2.jpg');
    
    Tento způsob může být vhodný, pokud nepotřebujete sloupec id v tabulce popis a chcete využít automatického generování identifikátorů v SQLite pomocí rowid.

    Pokud ale potřebujete sloupec id v tabulce popis, je lepší ho ponechat a používat ho jako klíč pro odkazování v tabulce popis_obrazek. Toto je obecně považováno za lepší praxi, protože rowid může být přepsán při určitých operacích s tabulkou, například při přesunutí řádků nebo při vkládání řádků do středu tabulky. Klíče definované uživatelem (jako je id) jsou stabilnější a méně pravděpodobné, že se změní.

    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.