MySQL

外部キーについて

テーブル間のデータの整合性を保つ機能。有用な場面もあるが、使いすぎには気をつけなければならない。データの移行時に手間になる可能性があるから。

匿名ユーザーを削除する

何もしないままだと存在しないユーザーでログインできてしまう。 mysql -uhogehogehoge なので、mysqlデータベースから匿名ユーザーを削除する。 use mysql; delete from user where user = ''; flush privileges;

SQLの結果をCSVファイルで保存する

mysql> select * from TABLENAME into outfile "/path/to/file.csv" fields terminated by ',';

mysqldumpについて

・mysqldump中にロックをしないと、データを取り出している最中にテーブルが更新され、データの不整合が発生する可能性がある。・ロック中に書き込みがあった場合は、書き込み処理は待機してくれるのか確認する。また、待機してくれる場合はどの程度の時間を…

(MySQL) mysqldumpで出力したデータのdiffをとる

MySQL Workbench というツールが使えそう。 無料のGUIツール。 http://www-jp.mysql.com/products/workbench/ これで2つのMySQLのスキーマの差分を取り、 同期用SQLを出力する方法を探す。 これが実現できれば試験環境でMySQLに加えたスキーマの変更が より…

(MySQL) ALTER TABLEの挙動

http://nippondanji.blogspot.jp/2009/05/alter-table.html ・テーブルのコピーを作成するので、該当のテーブルと同じ容量のディスクスペースが必要。 → ぎりぎりだとALTER TABLEができない。 ・ALTER TABLE実行中はWRITEにロックがかかる。 → 変更中はアプ…

クロス結合を行う

SELECT FROM * tablename CROSS JOIN tablename02, tablename03, tablename04, ...; クロス結合は対象のテーブルのレコード全ての組み合わせを作成するように結合される。つまり、結合後のレコード数はテーブルに存在するレコード数倍されていく。例えば3レ…

BLOB型とは

■BLOBとは ・Binary Large Objectの略称である。 ・バイナリデータを保存できる。 ■バイナリデータの保存 ・エスケープしないと保存できない。

mysqldumpをバッチファイルで実行する

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -u USERNAME -pPASSWORD DATABASENAME > C:\dump.sql ポイント ・mysqldumpはフルパスで ・-pに続けてパスワード入力

rootのパスワードを設定する

下記のコマンドはユーザーrootのパスワードをsomethingにする例。 set password for root@localhost = passsword('something');

truncateするとauto_incrementの値は初期化される

掲題の通り。