Komunikační platforma Telegram začne po tlaku úřadů poskytovat vládám více informací o svých uživatelích. V pondělí to oznámil její zakladatel a generální ředitel Pavel Durov. Ten už několik týdnů ve Francii čelí obvinění, že nedělá dost pro to, aby platformu nevyužívaly i kriminální živly. To chce Durov nyní také změnit, informují tiskové agentury.
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 145 (pdf) a Hello World 25 (pdf).
Programovací jazyk Hy (Wikipedie) dospěl do verze 1.0.0. Po téměř dvanácti letech vývoje. Jedná se o dialekt programovacího jazyka LISP navržený pro interakci s programovacím jazykem Python.
Zen je webový prohlížeč vycházející z Firefoxu. Vývoj probíhá na GitHubu. Instalovat lze také z Flathubu.
Organizace Apache Software Foundation (ASF) vydala verzi 23 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byla vydána verze 24.3 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
Ve čtvrtek 3. října se v Red Hat Labu (místnost Q305) na FIT VUT v Brně uskuteční další Fedora Installfest. Od 10 do 16 budou v labu připravení odborníci na Fedoru ze společnosti Red Hat, kteří vám můžou pomoct nejen s instalací, ale taky pomoct s dalšími problémy a dotazy ohledně Fedory. Akce je primárně zaměřená na studenty FIT VUT, ale vítáni jsou i lidé, kteří tuto školu nenavštěvují.
Byla vydána nová verze 9.9 sady aplikací pro SSH komunikaci OpenSSH. Z novinek lze vypíchnout podporu hybridní post-kvantové výměny klíčů založené na FIPS 203 ML-KEM (Module-Lattice Key Enapsulation mechanism) v kombinaci s X25519 ECDH, tj. nový výchozí algoritmus "mlkem768x25519-sha256". Počátkem roku 2025 bude z OpenSSH odstraněna podpora DSA.
Interaktivní monitor zdrojů btop++, tj. C++ verze a pokračování monitorů bashtop a bpytop, byl vydán v nové verzi 1.4.0. Přináší podporu monitorování Intel GPU a NetBSD.
Byl vydán Nextcloud Hub 9. Představení novinek tohoto open source cloudového řešení také na YouTube.
MySQL má svou oblast, kde je doma a která jí sedí. Tam zaslouženě kraluje, o tom není sporu. Není mi moc jasné, proč se za každou cenu snaží tuto oblast opustit a vrhnout se jinam, nota bene někam, kde je už dávno přecpáno.
SQL
znamenaji, než se pustíte do vývoje.
Pokud chcete, aby byl sloupec unikátní, jednoduše přidáte UNIQUE CONSTRAINT
, pokud se jedná o id, tak rovnou PRIMARY KEY
.
V praxi se sekvence používají tak, že buď je použijete jako defaultní hodnotu pro sloupec, jehož hodnota má narůstat, nebo si z nich vyberete před vložením nového řádku novou hodnotu (která je samozřejmě pokaždé unikatní.
Takto je to zcela v duchu SQL
a nepotřebujete volat nějakou obskurní funkci. Má to také spoustu výhod:
Asi byste si měl opravdu nekdřív zjistit, co sekvence v SQL
znamenaji, než se pustíte do vývoje.
nebylo by od věci hodit odkaz, žádnou tlustou knihu o SQL (po ruce) nemám, prvních 10 stránek odkazů z Jyxa je na nic, Google taky nicmoc ... no našel jsem si aspoň něco o syntaxi ...
btw, "než se pustím do vývoje" - když potřebuju rychle zbastlit pár kilo kódu, nebudu kvůli tomu kupovat a číst tlustou knihu o SQL - a když nepřečtu tlustou knihu o SQL, tak se o existenci sekvencí ani nedozvím (nebýt ábíčka ), takže nemohu zjišťovat, "co sekvence v SQL
znamenaji"
Pokud chcete, aby byl sloupec unikátní, jednoduše přidátejistěže PRIMARY KEY - a proto dojde k chybě, když vkládám řádek se stejným id ...UNIQUE CONSTRAINT
, pokud se jedná o id, tak rovnouPRIMARY KEY
.
V praxi se sekvence používají tak, že buď je použijete jako defaultní hodnotu pro sloupec, jehož hodnota má narůstat,což je akorát složitější zápis toho, co dosáhnu auto-incrementem ...
nebo si z nich vyberete před vložením nového řádku novou hodnotu (která je samozřejmě pokaždé unikatní.a jak dosáhnu té unikátnosti? - když se zeptám
SELECT sekvence.NEXTVAL FROM tabulka
dvakrát po sobě (aniž by se mezitím něco vložilo či jinak manipulovalo s hodnotou sekvence), tak snad dostanu stejné číslo, ne?
... a tím pádem jsem tam, kde jsem byl v příkladu výše
Takto je to zcela v duchu SQL
a nepotřebujete volat nějakou obskurní funkci.
a to jako s tím strašidlem rozmlouváte každý úplněk o půlnoci za strašidelného svitu monitoru a ono Vám ve svém zjevení řeklo, že auto_increment je špatný, je špatný, je opravdu špatný, nebo máte ještě nějaký jiný důvod, proč se drbat levou rukou za pravým uchem a říkat, že škrábání pravou rukou je obskurní?
ruku na srdce - kolik jste viděl projektů nad MySQL, u kterých by někdy nějaká migrace na jiný engine hrozila, notabene když jsou zbastleny v phpku a visí přímo na mod_mysql a ne na obecné db vrstvě? - viz výše, můj příklad se týkal vhodnosti konkrétní databáze pro konkrétní věc, kdyby šlo o něco obecného, tak neřeknu
- jedná se standard, takže nebudete mít při přechodu na jinou rdbm
to snad mohu s tím autoincrementem taky ... (nehledě na to, že mě nenapadá důvod mít v tabulce duplicitní sloupce ...)
- můžete jednu sekvenci používat na víc sloupcích i s různých tabulek
WTF? co je na LAST_INSERT_ID() nepohodlného oproti sekvence.CURRVAL ap.?
- pohodlná manipulace pomocí SQL příkazů
zajímal by mě konkrétní příklad kdy, nějak si ho neumím představit (a po výše uvedené zkušenosti s vyhledávači už jsem líný vůbec pokoušet se něco hledat, když mě ani v nejmenším nenapadá, jak sestavit frázi vedoucí k výsledku)?
- někdy se hodí znát id řádku ještě před samotným vložením řádku
btw, "než se pustím do vývoje" - když potřebuju rychle zbastlit pár kilo kódu, nebudu kvůli tomu kupovat a číst tlustou knihu o SQL - a když nepřečtu tlustou knihu o SQL, tak se o existenci sekvencí ani nedozvím (nebýt ábíčka ), takže nemohu zjišťovat, "co sekvence v SQL
znamenaji"
BTW. Když si sám chcete vybagrovat díru, potřebujete nejen bagr, ale také se jej naučit obsluhovat. Proč by to u databází mělo být jinak?
BTW. Když si sám chcete vybagrovat díru, potřebujete nejen bagr, ale také se jej naučit obsluhovat. Proč by to u databází mělo být jinak?když chci vykopat díru na zasazení stromku, stačí mi rýč či vhodná lopata a k obsluze potřebuji minimum znalostí ... proč by to mělo být u databází jinak? opravdu si všichni vrabci zaslouží být stříleni kanónem?
A jste si jist, že jste si v tomto případě vybral správnou ráži? Vy jste nesáhl po zmíněném rýči, ale po bagru.
serial
(příp. bigserial
)
a jak dosáhnu té unikátnosti? - když se zeptám SELECT sekvence.NEXTVAL FROM tabulka dvakrát po sobě (aniž by se mezitím něco vložilo či jinak manipulovalo s hodnotou sekvence), tak snad dostanu stejné číslo, ne?Do Google zadám postgres sequence a hned třeba první odkaz na pochopení bohatě stačí.fajn, a to že tam mám zadat "postgres" a ne třeba "SQL", "ANSI SQL" apod. se dozvím Božím vnuknutím nebo jak? mimochodem, popis se trošku liší od toho co jsem našel, např. hodnotu currval jsem pochopil jako poslední užitou hodnotu, nikoliv jako hodnotu vrácenou v posledním volání nextval ("currval - Return the value most recently obtained by nextval for this sequence in the current session.") ... jak se tedy dozvím, jaké je poslední přidělené id (když se nezeptám předem na nextval a nevkládám to včetně id, nýbrž id nevyplňuju a vkládám to stejným stylem jako autoincrement)?
... Ne, dostanete samozřejmě pokaždé jiné číslo, právě proto je to sekvence.to nebylo ze stránky, co jsem četl, zřejmé, viz výše
přečetl jsem ten blogpost dvakrát a stále nechápu, jak to souvisí s tím, co říkám ... autor blogpostu se zřejmě potřebuje podrbat za levým uchem a zkouší to nohama - no, já mu to neberu, ale ptám se původně, co je špatného na tom, abych se za pravým uchem drbal pravou rukou, a jak to souvisí se spiritistickými seancemi?a to jako s tím strašidlem rozmlouváte každý úplněk o půlnoci za strašidelného svitu monitoru a ono Vám ve svém zjevení řeklo, že auto_increment je špatný, je špatný, je opravdu špatný, nebo máte ještě nějaký jiný důvod, proč se drbat levou rukou za pravým uchem a říkat, že škrábání pravou rukou je obskurní?Namátkou: Gavin's Blog
Jak třeba pomocí auto_increment uděláte, aby se inkrementovaná hodnota použila ve více tabulkách zároveň?reversně k tomu, jak bych to udělal se sekvencí ... uložím do jedné tabulky řádek s auto_increment, zeptám se na last_insert_id, uložím s tímto id řádky v ostatních tabulkách ... neříkám, že by to takhle nebylo nešikovné (asi to půjde i jednodušeji), ale tvrdit, že by to nešlo vůbec není fair
A teď na začátek:v pořádku - jsem rád, že jsem se o SQL zas něco dozvěděl (rozhodně to budu mít v paměti živěji než příklad načtený z tlusté knihy o SQL, který zapomenu než ho stihnu uplatnit) nicméně nicmoc to nemění na tom, co jsem chtěl říci - MySQL mi prostě nabízela jednoduchý nástroj, jak docílit efektu, který jsem potřeboval, zatímco u PostgreSQL jsem to musel dělat složitěji (po zkušenostech z této diskuse bych to napsal jednodušeji než tehdy, ale pořád složitěji než s možností použít last_insert_id), takže z uživatelského hlediska ke mě byla (a je) MySQL prostě přítulnější ......potreboval jsem naprosto trivialni veci - jako napr. last insert id, coz jsem zjistil, ze PostgreSQL nezna (tehdy neznala?), takze jsem to musel slozite obchazet - pro me tedy tehdy v tom projektu byla PostgreSQL jasne horsi, protoze narozdil od MySQL neumela to, co bych potreboval ...Tohle jste tvrdil, a proto tento thread vznikl. Ne proto, že bych si myslel něco špatného o MySQL.
As AUTO_INCREMENT is implemented as SELECT MAX(col) FROM table, it makes transactions prone to deadlocks: http://www.mysql.com/doc/en/InnoDB_auto-increment_column.htmljestli se deadlockem míní to, co si myslím, pak nechápu, jak na to autor toho postu přišel, že je na ně MySQL náchylná ...?
Tiskni Sdílej: