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
78
0
Share
データベースで沼った話
めぐろLT#8の資料です
K1mu21
March 12, 2024
More Decks by K1mu21
See All by K1mu21
dependabotを導入して失敗した話
k1mu21
0
140
Rust勉強会1回目の資料
k1mu21
0
69
ギャレトレ勉強会
k1mu21
0
75
リプレイスでやったこと
k1mu21
1
82
Cloudflareいいぞ
k1mu21
1
130
静的解析ツールを導入した話
k1mu21
1
230
WebGLを触ってみよう
k1mu21
1
61
GoのAirを使ってみた話
k1mu21
0
150
学生から社会人1年目を通して
k1mu21
2
250
Other Decks in Programming
See All in Programming
Don't Prompt Harder, Structure Better
kitasuke
0
770
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
150
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
220
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
140
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
260
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
200
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
0
150
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
1
440
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.3k
Programming with a DJ Controller — not vibe coding
m_seki
3
120
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
13k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
180
First, design no harm
axbom
PRO
2
1.2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
380
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
440
Code Reviewing Like a Champion
maltzj
528
40k
KATA
mclloyd
PRO
35
15k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
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