タグ

sqlとtableに関するgouei2001のブックマーク (2)

  • InnoDB の行レベルロックについて解説してみる

    自分の浅はかな理解だと、Deadlock が起こる理由が説明できないケースに遭遇したので、InnoDB の行レベルロックについて調べてまとめてみました。 「行レベルロックだと、同じ行を更新する場合にしか Deadlock が起こらないんでしょ」と思っているような人が対象です。 また、主に InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる を参考にさせていただいたので、そちらの内容がすんなり理解できる方には冗長な内容だと思います。 MySQL のバージョンは 5.6.33 です。 サンプルデータ 次の SQL で作成したデータを扱うことにします。 CREATE TABLE `orders` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `product_id` int(10) unsigned NOT NULL, `us

    InnoDB の行レベルロックについて解説してみる
  • SQLServer(T-SQL)で1行のINSERT文で複数のデータを挿入する方法

    SQLServer(T-SQL)で1行のInsert文で複数件のデータを一気に挿入することはできないのでしょうか? 実はSQLServer(T-SQL)で1行のINSERT文で複数件挿入するには「VALUES以降をカンマで区切って」渡せば挿入できます。 ただし挿入できるのは最大1000行までです。 それ以上の場合はINSERT文を分けて実行する必要があります。 具体的には通常のInsert文のVALUES以降を「,(カンマ)」で続けて書いていくことで可能になります。 INSERT INTO test_table VALUES ( 1, 'NAME1', 10 ) ,( 2, 'NAME2', 20 ) ,... 注意としては1つでもエラーの発生するVALUESが存在すると、すべてのデータが挿入がCommit(コミット)されずRollBack(ロールバック)されてしまいます。(1件のデータも

    SQLServer(T-SQL)で1行のINSERT文で複数のデータを挿入する方法
  • 1