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
0
50
データベースで沼った話
めぐろLT#8の資料です
K1mu21
March 12, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
リプレイスでやったこと
k1mu21
1
25
Cloudflareいいぞ
k1mu21
1
60
静的解析ツールを導入した話
k1mu21
1
150
WebGLを触ってみよう
k1mu21
1
37
GoのAirを使ってみた話
k1mu21
0
62
学生から社会人1年目を通して
k1mu21
2
200
Lidarであそぼ
k1mu21
0
32
Other Decks in Programming
See All in Programming
為你自己學 Python
eddie
0
360
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
250
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
360
Beyond ORM
77web
10
1.4k
return文におけるstd::moveについて
onihusube
1
1.3k
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
690
20241217 競争力強化とビジネス価値創出への挑戦:モノタロウのシステムモダナイズ、開発組織の進化と今後の展望
monotaro
PRO
0
120
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
770
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
140
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.1k
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
270
선언형 UI에서의 상태관리
l2hyunwoo
0
230
Featured
See All Featured
Faster Mobile Websites
deanohume
305
30k
Scaling GitHub
holman
459
140k
Become a Pro
speakerdeck
PRO
26
5.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Designing for Performance
lara
604
68k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
171
50k
It's Worth the Effort
3n
183
28k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
A Tale of Four Properties
chriscoyier
157
23k
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