Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースで沼った話
Search
K1mu21
March 12, 2024
Programming
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データベースで沼った話
めぐろLT#8の資料です
K1mu21
March 12, 2024
More Decks by K1mu21
See All by K1mu21
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
dependabotを導入して失敗した話
k1mu21
0
160
Rust勉強会1回目の資料
k1mu21
0
81
ギャレトレ勉強会
k1mu21
0
81
リプレイスでやったこと
k1mu21
1
91
Cloudflareいいぞ
k1mu21
1
150
静的解析ツールを導入した話
k1mu21
1
240
WebGLを触ってみよう
k1mu21
1
63
GoのAirを使ってみた話
k1mu21
0
160
Other Decks in Programming
See All in Programming
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
110
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
210
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
110
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
220
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
240
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
160
Vite+ Unified Toolchain for the Web
naokihaba
0
280
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.3k
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
350
New "Type" system on PicoRuby
pocke
1
830
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Unsuck your backbone
ammeep
672
58k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
sira's awesome portfolio website redesign presentation
elsirapls
0
280
Are puppies a ranking factor?
jonoalderson
1
3.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
The Pragmatic Product Professional
lauravandoore
37
7.3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
380
Transcript
データベースで 沼った話
自己紹介
• 木村 宗吾(k1mu) • 所属 ◦ 株式会社ラクーンホールディングス技 術戦略部 • 領域
◦ バックエンド(+フロントエンド) • 言語 ◦ 業務 ▪ Java PHP ◦ 業務外 ▪ Go C(++) • X ◦ @detunote
なぜこの話をするのか • テーマが初めてのLTとの事で、せっかくなら1年目として印象に残ったことを話す と面白いのでは • DBを触る方は多いと思うので、知らなかったのであればこれからの知見として ほしい
DBに関して
皆さんDBは何を使った事があります?
今回の説明で使うDB
沼った問題
前提 (テーブル)
前提 (データ)
テーブルをUPDATE UPDATE users SET name = '木村' WHERE id =
3; ID3の名前を木村に変更するUPDATEを実行する
結果 ID3の名前が変わっている MySQL ORACLE
別のSQLエディター 等で確認 Oracleの方ではID3の Nameが変わっていない ORACLE MySQL
内容が反映されていな い...!?
最後にCommitした?
解決方法 UPDATE users SET name = '木村' WHERE id =
3; commit;
結果 別のエディターで見ても データが入っていて UPDATEもされている。
DBに反映された!
原因 • コミットしていなかったため、利用中のトランザクションでしかUPDATEが反映さ れていなかった。 • 正直MySQL = ORACLE のように考えていた。 ◦
MySQLなどにはAuto Commitがあり、標準ではONになっているので最後に自分で Commitを 明示的に宣言する必要がない。 ◦ OracleにもAuto Commitがあるが標準ではOFFになっている。
他にも • バージョンによってOracleにはオートインクリメントがない ◦ シーケンスを利用して連番を生成する必要がある。 • LimitがないのでRowNumを利用して行数を制限 • SELECT句にGROUP BY句にない列を含めることができるが、その列は集約関
数の中で使用される必要がある。 • Oracleでは空文字はNullと同等に扱える
仕様はちゃんと 調べてから使おう
宣伝 弊社のconnpassページ https://raccoon-holdings.connp ass.com