カテゴリー
SugiBlog Webデザイナー・プログラマーのためのお役立ちTips

テーブルの不一致データ参照

テーブルAにあってテーブルBにないデータを見つけたいとき、
ACCESSでいうところの「不一致クエリ」を使います。

select TABLE_A.* from TABLE_A 
left join TABLE_B on TABLE_A.ID = TABLE_B.ID 
where (TABLE_B.ID Is Null);
4,675 views

MySQL CSVファイルの入出力

一発で出来て便利な方法を見つけたので、書いておきます。
ただ、入力の場合、フィールド数は同じである必要があります。

【出力】
書式

SELECT * FROM [TABLE] INTO OUTFILE "[ファイルのパス]" FIELDS TERMINATED BY "[区切り文字]" OPTIONALLY ENCLOSED BY '[囲み文字]' LINES TERMINATED BY "[改行コード]";

MySQLで実行する場合

SELECT * FROM [TABLE] INTO OUTFILE "[ファイルのパス]" FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\r\n";

PHPで実行する場合(SQL文以外省略しています)

select * from [TABLE] into outfile \"[ファイルのパス]\" fields terminated by \",\" optionally enclosed by '\"' lines terminated by \"\r\n\"

【入力】

load data infile \"[ファイルのパス]\" into table [テーブル名] fields terminated by \"[区切り文字]\" enclosed by '[囲み文字]' lines terminated by \"[改行コード]\"

MySQLで実行する場合

LOAD DATA INFILE "/tmp/temporary.csv" INTO TABLE TABLE FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\r\n";

PHPで実行する場合(SQL文以外省略しています)

load data infile \"/tmp/temporary.csv\" into table TABLE fields terminated by \",\" enclosed by '\"' lines terminated by \"\r\n\"
4,686 views

PDO(PHP Data Object)

PDOのMySQL対応ドライバをPHPに組み込む
コンフィグ時にオプションを追加する

./configure ‐‐with‐pdo‐mysql

簡単な使い方

設定情報

$dbtype = "[データベースの種類]";
$sv     = "[サーバーアドレス]";
$dbname = "[データベース名]";
$user   = "[ユーザー名]";
$pass   = "[パスワード]";

続きを読む…»

1,304 views

MySQL バックアップ

PHP5  —–

[ /usr/local/bin/backup ]

#!/bin/sh

THISDAY=`date +%F_%H-%M-%S` 

cd /var/lib/mysql

tar -cvzf /usr/tmp/mysql_"$THISDAY".tgz *

/usr/local/bin/php -f /var/www/html/cli/backupper.php ‐‐ \

/usr/tmp/mysql_"$THISDAY".tgz

#if [ $? -eq 0 ] ; then

#rm -rf /usr/tmp/mysql_"$THISDAY".tgz

#fi

[cronに登録(2日毎、午前10時に実行)]
続きを読む…»

1,615 views

MySQLコマンド

コマンドラインからMySQLに接続する基本書式

mysql -h [ホスト名] -u [ユーザー名] -p -D [データベース名]
mysql --host=[ホスト名] --user=[ユーザー名] -p -database=[データベース名]

localhostの場合、ホストは省略可能です。
コマンドを入力するとパスワードを聞かれるので入力します。

パスワードを予め入力する場合は次のようにオプションで指定します。
パスワードに限ってはオプションとの間に空白を入れないよう注意してください。

-p[パスワード]
--password=[パスワード]

show databasesで情報を表示。
useコマンドでDBを選択。
show table statusでテーブル情報を表示。

MySQLでロックが発生したとき

ロック状態を確認する

SELECT trx_rows_locked FROM information_schema.INNODB_TRX;

ロックがかかっている行数が確認できます。

スレッド情報を表示し、ロックがかかっているスレッドを特定する

SHOW ENGINE INNODB STATUS\G

スレッドIDが確認できたらプロセス一覧を表示します。
スレッドIDとプロセスIDはイコールです。

show processlist;

ロックがかかってしまっているプロセスを強制終了します。

KILL [プロセスID];
1,734 views