MySQL

AUTO_INCREMENTの確認と設定

AUTO_INCREMENTで次に振られる値を確認する SHOW TABLE STATUS LIKE 'テーブル名'; # シングルクォートが必要 SHOW TABLE STATUS LIKE 'mychuno_reports'; AUTO_INCREMENTで次に振られる値を設定する SHOW TABLE STATUS テーブル名 AUTO_INCREMENT = 値; # …

MySQLのhaving句

重複するレコードから特定の1件のみを取得するSQL 例 テーブルAとテーブルBをJOIN Bの’id’カラムが最大値になるものと、AをJOIN 外部キーはuser_id SQL SELECT a.id, b.id FROM table_a AS a INNER JOIN table_b AS b ON a.id = b.user_id GROUP BY a.id HAV…

INSERT文実行時に「Unknown column 〜」と言われた。

phpMyAdminのSQL発行機能にて簡略版INSERT文を実行。 INSERT INTO `mychuno_company` values(null, ‘hoge’, 1, 999, ‘hchuno’); #1054 - Unknown column ‘‘hoge’’ in 'field list' ⇒hogeやhchunoをシングルクォートではなくダブルクォートで囲むようにしたら…

MySQLが起動できない

$ sudo mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/var/mysql/chuno-mac.local.pid). /usr/local/var/mysqlの権限がおかしいようなので、所有者を_mysqlにする。 $ sudo chown -R _mysql:_mysql /u…

バルクインサートの実装

Entityを介さず、直接SQL(INSERT文)を生成して実行する。 MySQLのバルクインサート(複数データを一つのINSERT文で登録)を実現。 INSERT INTO table VALUES (a1, b1, c1), (a2, b2, c2), (a3, b3, c3); ↑こういう処理を行わせるのが目的。

MySQL5.6が起動せずにハマる

Macbook Air上でのお話。.zshrcにPATHを通して使いやすくした。 export PATH=$PATH:/usr/local/Cellar/mysql/5.6.10/bin MySQLを起動しようとしたらエラー発生。 $ mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (…

スキーマだけをエクスポートする。

構文。 mysqldump -u ユーザー名 -p -d データベース名 > エクスポートするファイル名 例。 mysqldump -u hchuno -p -d mychuno > schema_mychuno.sql

mysqldumpで文字化け発生

テーブルの文字コードをUTF-8にしたのに文字化けしたので、その対応策。

ORとINの使い所

以下のようなテーブルがあったとする。profileテーブル。 id name 1 A 2 B 3 C 4 D 5 E 複数条件のうち、1つでも当てはまるものがあれば結果を1つだけ返す ORを使う SELECT * FROM profile WHERE name = 'A' OR 'B' OR 'D'; ⇒nameがAのもののみ返される(検索…

CSVからのデータインポート時に文字化け

「LOAD DATA INFILE」文を使って、CSVファイルの内容をMySQLにインポートしようとしたところ… mysql> LOAD DATA INFILE './test.csv' INTO TABLE mt_zipcode FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' ; 文字化けした。 文字コー…

database.phpとDB接続

現象 CodeIginiterからデータベースへの接続ができない… config/database.phpで $db['default']['autoinit'] = TRUE; とすると以下のエラー。 $db['default']['autoinit'] = FALSE; とすると、エラーは出ないが $this->load->database(); の戻り値がFALSE。 …

テーブル内データを見やすく表示

SELECT文の後に\Gを付ける。

Timestampの驚くべき仕様。

同僚エンジニアに教えてもらった事実。 Timestamp型のカラムが複数あるテーブルでUpdateを行った場合、最初に出てくるカラムのみが更新されます。

コネクション数とwait_timeoutの設定

MySQLが起動できない!

さくらVPSでMySQL5.5.17をインストールした時のお話。

XAMPでApacheが動かない原因と対処方法

調査方法 コマンドプロンプトで、 netstat -oan とすると、 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 7704 のような情報が表示される。 プロセスID:7704が80ポートをつかんでしまっているので、これが何者かを調べる。 タスクマネージャーを起動 プロセスタブを…

MySQL Workbenchがインストールできなかった。

Windows7に、便利ツール「MySQL Workbench」をインストールしようとしたら、エラーが発生して失敗。 「Microsoft Visual C++ 2010 再頒布可能パッケージ (x86)」 を入れてから再度インストールを試みたらOKだった。

MySQLコマンドを有効にする

MySQLをインストールして、mysqlコマンドを叩いても… bash: mysql: command not found エイリアスの設定が必要。

オートインクリメントなカラムに自動採番されたデータを入れたい場合

レコードをINSERTする際、オートインクリメントのカラムにはNULLを指定すると、勝手に採番してくれる。(例)id, product_id, num, updated…といったカラムがあって、このうちidがオートインクリメントになっている場合。 INSERT INTO product VALUES(null, 27…

ダンプ云々で使ったコマンド

sqlファイルを実行する データベースを指定してインポートする $mysql database_hchuno -u hchuno -p sql スキーマだけを反映させる場合 $mysql -D database_hchuno -u hchuno -p sql SELECTの結果をダンプする 構文 mysqldump -u ユーザ名 --where="条件" -…

権限に関するトラブルシューティング

インポート用SQLファイルを指定してデータを流し込もうとしたらエラーが発生。 ログインユーザに十分な権限が与えられていなかったことが原因。rootでcreate database CREATE DATABASE db_hchuno; データベースを選択 USE db_hchuno; 使いたいユーザに対して…