sql
-
Coffmanの循環待機条件
お仕事で、書き込みの順序性を保つのにコードマスターにロックキーを用意して行ロック(select for update)で実現している方式に出会いました。
なぜにコードマスターで、思わないこともないのですが、そういうものなのです。
ロックキーは1テーブルごとへの書き込みを表現して… -
えくせるでてすとでーたをつくるその1
プロジェクトごとというか、会社さんというか、開発時のテストデータの作り方はいろいろありますね。
プログラムの仕様や、組んだSQL(これから組むであろう)の特性などから、テストケースおこして、それにあわせて、テストデータをつくるというのが一般的な流れかなとは思います。
エクセルで… -
sql IN句の数制限
oracleのIN句の中に記述できる要素は1000個ぽいですね。 で、怠惰の僕は1000を越える場合どうすればよいかと考えたわけです。 単純に1000個限界まで書いて、もうひとつIN句を用意してその続きを書いて、ORでつなげればいいんじゃないかと。
select * … -
白状しますと、昇順と降順の意味をおぼえていません。
はい、白状しますと、昇順と降順の意味をおぼえていません。
じゃ、どうやってSQLのソート順を決定するのさ、といわれますと、SQLを書いて実行した結果で、決めています。と、いうとどん引きされそうですね。。。
お仕事では、ディスプレイの横に、意味とデータを書いて貼ったりして、当座を… -
-
LEFT -RIGHT - 外部結合で集合演算だそうです。
SQLです。 やはりSQLは苦手です。ジョインとかインナージョインとかアウタージョインとかいうフレーズが聞こえると身構えてしまいます。...
差集合を求めるSQLです。
外部結合を使って差をもとめます。
LEFT側が大きい集合を想定しています。
LEFT - RIGHT = … -
mysqlでストアドプロシージャ その6 - プロシージャ内から別のプロシージャを呼ぶ
mysqlでストアドプロシージャ その6 です。
プロシージャ内から別のプロシージャを呼んでみます。
ついでにトランザクションに参加してるのか調べてみました。
参考
プログラマメモ2: mysqlでストアドプロシージャ その4 - トランザクション
結論としてトランザクションに含… -
mysqlでストアドプロシージャ その5 - ラベルを使ってcontinue,breakっぽく
mysqlでストアドプロシージャ その5です。
ループでラベル使うとcontinue,breakっぽく使えますねと。
17.2.10. フローコントロール・コンストラクト3 トリガーおよびストアド・プロシージャ なんとなく下記のような感じで
DROP PROCEDURE IF E… -
mysqlでストアドプロシージャ その4 - トランザクション
mysqlでストアドプロシージャ その4 です。
トランザクションの実験です。
どうもDBのエンジンによってトランザクションが有効無効がある感じですね。
参考
ストアドプロシージャでトランザクション処理をするにはどうすれば良いのでMySQL ストアドプロシージャー で 失敗時の… -
mysqlでストアドプロシージャ その3 - ROW_COUNT()
mysqlでストアドプロシージャ その3です。
ROW_COUNT()を使うのが今回の趣旨です。
ROW_COUNTは
先行するステートメントによって更新、インサート、または削除された行の数を戻します。
ってことらしい
参考
[MySQL]複数行を追加するためのinsert… -
mysqlでストアドプロシージャ その2
mysqlでストアドです。
oracleほどではないですが、使えて便利そうな予感です。
参考
17.2.9. カーソルInsert query doesn't support where keyword*
ストアドプロシージャで実験
簡単なシナリオ
aテーブルに入っている… -
mysqlでストアドプロシージャ
mysqlでストアドです。
まずストアドプロシージャのリストを表示は以下で
show procedure status;
参考
List of Stored Procedures/Functions Mysql Command Line - Stack OverflowMyS… -
最後に登録されたidを取得します。えーと、auto_incrementされた値をとることができるようです。
mysqlです。最後に登録されたidを取得します。えーと、auto_incrementされた値をとることができるようです。
select last_insert_id();
参考
auto_incrementでinsertされたレコードを取得するには?
INSERT ~~ ON … -
oracleでいうところのmergeのようなものmysql
oracleでいうところのmergeと似たようなものがmysqlにないかなーと
ON DUPLICATE KEY UPDATEというのを使えばいいらしい。merge intoよりは使いづらいけど。キーを指定しなおすところがめんどいです。
参考
ON DUPLICATE KEY … -
H2 - afterカラムして追加はできないような....BEFOREしかない
H2です。
dropしてcreateしてたテーブルですが、データが入ってしまったので、alterしてカラム追加です。
alter_table_add - SQL Grammar
afterカラムして追加はできないような....BEFOREしかないような。
一番最後に追加したい場合は普通… -
H2で複合キー
SQL Grammar
H2で複合キーです。
drop table aaa;
create table aaa
(
table_name VARCHAR2(100) ,
a1 VARCHAR2(100),
a2 VARCHAR2(100),
a3 VARCHAR2(100),
a4 VARCHA… -
-
おらくる VSIZE は内部でのサイズを返します。
oracleです。VSIZEはデータベース内部でのサイズを返してくれるそうです。
で、実験です。
下記のようなテーブルを作成します。
create table bbb
(
a1 NCHAR(1),
a2 NVARCHAR2(1),
a3 CHAR(1 BYTE),
a4 CHAR(1 CHAR… -
[oracle]varcharのデータ型にバイナリを入れることができるか。
Oracleです。テーブルのデータ型で悩み中です。どういう悩みかというと、char,varchar2のデータ型にバイナリのデータ(ようするに生のデータ)を入るのか、というものです。本来は、そういう用途だと、BLOBとかRAWの型だというのは承知のうえで。
で、入れてそれを使えるの… -
· sql
えーと、一行で複数のテーブルのカウントを返すSQL
SQLです。SQLは苦手です。
一行で複数のテーブルのカウントを返すSQLです。
見せてもらって、へーと、思ったのでメモ。
実験はH2で行ってます。
まず、テーブル作成
CREATE TABLE A ( id VARCHAR (10))
CREATE TABLE B ( id VARCHA… -