Mysqlでのprimary keyとkeyを整理

mysqlのprimary key と key を整理

CREATE TABLE sample(
id int not null,
group_id int not null,
name varchar2(100),
age int,
PRIMARY KEY (id),
KEY(group_id)
);

PRIMARY KEYはプライマリーキー
KEYはINDEXのようです

カラム内に書くとPRIMARYは省略できるようで

CREATE TABLE sample(
id int KEY,
group_id int not null,
name varchar2(100),
age int,
KEY(group_id)
);

でもいいです

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.1.17 CREATE TABLE 構文

CakephpでModelのデータベースアクセスをsqlで確認する

Cakephpでモデルにアソシエーションたくさんつけたり、検索条件たくさんつけたりすると
ちゃんとデータがとれるか不安なので、sqlで確認したい..ときには

$data = $this->SampleModel->find('all);

$sqlLog = $this->SampleModel->getDataSource()->getLog(false, false);
debug($sqlLog);

とすると生のSQLが表示されて安心です

phpでin_arrayを使わずに同じことをする

phpではすごく大きな配列だとin_arrayが遅いようなので書き換えてみました

普通のin_array

$arr = [1,2,3, 4, 5];
if (in_array(2, $arr)) {
    echo 'exists';
}

issetが早いらしいので、isset版

$flipArr = array_flip($arr);
if (isset($flipArr[2])) {
    echo 'exists';
}

キーと値を反転させて、issetで判定しています
ベンチとればよかったですが、かなり早くなりました

surround.vimで単語をダブルクオートで囲う

tpope/vim-surround
をインストール

Neobundleで入れました

$ vim .vimrc
NeoBundle ‘tpope/vim-surround’

一回vimを開きなおして

:NeobundleInstall

準備完了

ビジュアルモードで選択して
Shift + s

で下にカーソルが移動するので

を打つと単語がダブルクオートで囲まれます

ysiw
で下にカーソルが移動するので

を打つと単語がダブルクオートで囲まれます

ダブルクオートを外すときは単語の上にカーソルがある状態で
ds
で削除されます