Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースで沼った話
Search
K1mu21
March 12, 2024
Programming
0
64
データベースで沼った話
めぐろLT#8の資料です
K1mu21
March 12, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
dependabotを導入して失敗した話
k1mu21
0
120
Rust勉強会1回目の資料
k1mu21
0
52
ギャレトレ勉強会
k1mu21
0
44
リプレイスでやったこと
k1mu21
1
62
Cloudflareいいぞ
k1mu21
1
120
静的解析ツールを導入した話
k1mu21
1
210
WebGLを触ってみよう
k1mu21
1
49
GoのAirを使ってみた話
k1mu21
0
120
学生から社会人1年目を通して
k1mu21
2
240
Other Decks in Programming
See All in Programming
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
3.7k
関数の挙動書き換える
takatofukui
4
760
チーム開発の “地ならし"
konifar
8
6.4k
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
24
19k
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
300
アーキテクチャと考える迷子にならない開発者テスト
irof
9
3.4k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
5
1.1k
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
150
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.3k
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
5
570
CSC305 Lecture 17
javiergs
PRO
0
200
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
6
2.8k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
63
Product Roadmaps are Hard
iamctodd
PRO
55
12k
A better future with KSS
kneath
239
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Six Lessons from altMBA
skipperchong
29
4.1k
How GitHub (no longer) Works
holman
316
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
It's Worth the Effort
3n
187
29k
Statistics for Hackers
jakevdp
799
230k
For a Future-Friendly Web
brad_frost
180
10k
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