忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

MySQLでINSERT時のキー重複時に上書きしちゃう

プライマリキー制約などをつけているテーブルにINSERTするさいに一意制約違反がでるけど、それをエラーコードでハンドリングして、一意制約だけだったら無視するみたいなことを調べていたら、こんな機能があったのね。
ユニーク制約などの違反時に指定の値で上書きする
INSERT INTO tbl_name (col_name1, col_name2, ...)
  VALUES (value1, value2, ...)
  ON DUPLICATE KEY UPDATE col_name_x=value_x, col_name_y=value_y, ...;
 

拍手[0回]

PR

mysqlSelect結果をファイル出力

mysqlSelect結果をファイル出力するには以下の通り。

mysql> select * from hoge_table into outfile 'FILE_NAME';
FILE_NAMEで指定したファイルはサーバ上にできる。 クライアントに出力したい場合、コマンドラインから
mysqldump --tab や  mysql -h HOST -u USER DSN -pPASSWORD -e "SELECT ..." > outfile
MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.1 SELECT 構文

拍手[0回]

mysql LOAD INFILE テキストファイルから一括読み込みとか

mysqlでLOAD INFILEを使ってCSV→DBにデータを格納すると、すごい勢いでbinlogが出力される。
binlogはoracleのアーカイブログみたいなものなので、空のテーブルにファイルをロードするときは一時的に着るほうが望ましい。
(クラッシュしても、ファイルは手元にあるはずだから)

ところが、レンタルサーバ(私はlolipop)では、mysqlにSUPER権限が無いのでそのセッションだけバイナリログを無効にする事ができない。

mysql> SET sql_log_bin=OFF;  

SUPER権限があるなら↑でとめられる。


そこでストレージエンジンを試してみようと思う。MySQLの醍醐味らしい。

mysql> CREATE TABLE テーブル名 (テーブル定義 INDEXは無し) ENGINE CSV;  

って考えていたら、DBサーバが別サーバにある場合どうしたらいいんだろう。。。
ちょっと考えなきゃ。。。


今回binlog大量生成で、一時的にアカウントをとめられてしまったけど、即座の対応と、検証用環境の提供などをしてくれて、驚いた。やるなロリポップ。

 

 


 

拍手[0回]

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター