MySQL データが変更された時間を自動的に保存する

MySQL

MySQL データが変更された時間を自動的に保存する

MySQL5.5

データが変更されたり作成された時間を、自動的に保存しておくことが、MySQLの機能で可能です。
プログラム側で作っておくのは面倒ですもんね!

phpMyAdminなどで、次のように設定します。

 データ型:timestamp 
 属性: on update CURRENT_TIMESTAMP
 デフォルト値:CURRENT_TIMESTAMP
 その他:ON UPDATE CURRENT_TIMESTAMP

MySQL テーブル内のフィールドのデータを違うフィールドにコピー

MySQL

MySQL テーブル内のフィールドのデータを違うフィールドにコピー

Excelである列のデータを違う列にコピーするように、データベースのデータをコピーするのはどうすればよいかなーと思ったことはありませんか?
コピペというより、普通にデータをINSERTかUPDATEすることになります。

 UPDATE (teble1) SET コピーした値を入れたいカラム名 = コピーするカラム名;

MySQL テーブルの一部のデータをコピーする

MySQL

MySQL テーブルの一部のデータをコピーする

たとえば、全部のデータをcsv_examinationsというテーブルの内容をexaminationsにコピーしたい時は

 INSERT INTO 
   examinations
 SELECT 
  *
 FROM
  csv_examinations

とやればいいのですが、いや、一部のフィールドだけコピーしたいんだよという時もあると思います。

そんな場合は、下記のように書きます。

 INSERT INTO 
   examinations
  (examination_date, student_name, student_name_kana) 			
 SELECT 
   examination_date, student_name, student_name_kana
 FROM 
  csv_examinations

ちなみに今の時刻をプラスする場合は

 INSERT INTO 
   examinations
  (examination_date, student_name, student_name_kana, created) 			
 SELECT 
   examination_date, student_name, student_name_kana, NOW()
 FROM 
  csv_examinations
  • 初めまして!非常に参考になりました。ところで、このプログラムに置いて、相違するデータベース間で、同じような事をしたい場合のプログラム構文を教えて頂けないでしょうか?よろしくお願い致します。 — トオル {2016-06-21 (火) 13:20:31}

MySQL コマンド早見表

MySQL

Windowsでコマンドプロンプトから操作する場合のMySQLのコマンドで、よく使いそうなものをとりあえず。
コマンドは複数行にわたってもよいですが、最後に;をつけるのを忘れないようにしましょう。

データベースを作成する

 mysql> CREATE DATABASE データベース名;

テーブルを作成して、その中にカラム(データ項目)を設定する

 例:testというテーブルの中に、idをAUTO INCREMENT(1ずつ数値が増える)で設定する。
 
 mysql>CREATE TABLE test(
      ->id INT(5) NOT NULL AUTO_INCREMENT, 
      ->PRIMARY KEY(id)
      ->);

AUTO INCREMENTはKEYとして設定しないと使えないのと、アンダーバーを入れるのを忘れないようにしましょう。 また、, とかの位置にも注意。

テーブルの最後にカラムを追加する

 例:testというテーブルの中に、nameというカラムを増やす
 mysql>ALTER TABLE test
      ->ADD name varchar(255) NOT NULL;

データベース一覧を表示する

 mysql>SHOW DATABASES;

テーブル一覧を表示する

 mysql>SHOW TABLES;

テーブルのカラムなど表示する

 例:testというテーブルのカラム情報を表示させる
 mysql>DESC test;

データを変更する

 例:testというテーブルのlevelというカラムのデータをすべて"first"にする
mysql>UPDATE test set level='first' ;

MySQL エラー 1034 – Incorrect key file for table try to repair it

MySQL

MySQL エラー #1034 – Incorrect key file for table ‘○○’ try to repair it

上記のようなエラーメッセージが出て(○○はテーブル名)、データベースを更新できない場合は、そのテーブルが破損している可能性があります。
REPAIRコマンドで、修復しましょう。

 //○○はテーブル名
 REPAIR TABLE `○○`