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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
K1mu21
March 12, 2024
Programming
0
70
データベースで沼った話
めぐろLT#8の資料です
K1mu21
March 12, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
dependabotを導入して失敗した話
k1mu21
0
130
Rust勉強会1回目の資料
k1mu21
0
60
ギャレトレ勉強会
k1mu21
0
66
リプレイスでやったこと
k1mu21
1
71
Cloudflareいいぞ
k1mu21
1
130
静的解析ツールを導入した話
k1mu21
1
220
WebGLを触ってみよう
k1mu21
1
54
GoのAirを使ってみた話
k1mu21
0
140
学生から社会人1年目を通して
k1mu21
2
240
Other Decks in Programming
See All in Programming
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
CSC307 Lecture 05
javiergs
PRO
0
500
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
Fluid Templating in TYPO3 14
s2b
0
130
Raku Raku Notion 20260128
hareyakayuruyaka
0
360
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
並行開発のためのコードレビュー
miyukiw
0
1k
Oxlintはいいぞ
yug1224
5
1.4k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
600
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
79
Building Applications with DynamoDB
mza
96
6.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
200
Ethics towards AI in product and experience design
skipperchong
2
200
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
So, you think you're a good person
axbom
PRO
2
1.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Keith and Marios Guide to Fast Websites
keithpitt
413
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