MySQL データが変更された時間を自動的に保存する
MySQL5.5
データが変更されたり作成された時間を、自動的に保存しておくことが、MySQLの機能で可能です。
プログラム側で作っておくのは面倒ですもんね!
phpMyAdminなどで、次のように設定します。
データ型:timestamp 属性: on update CURRENT_TIMESTAMP デフォルト値:CURRENT_TIMESTAMP その他:ON UPDATE CURRENT_TIMESTAMP
MySQL5.5
データが変更されたり作成された時間を、自動的に保存しておくことが、MySQLの機能で可能です。
プログラム側で作っておくのは面倒ですもんね!
phpMyAdminなどで、次のように設定します。
データ型:timestamp 属性: on update CURRENT_TIMESTAMP デフォルト値:CURRENT_TIMESTAMP その他:ON UPDATE CURRENT_TIMESTAMP
Excelである列のデータを違う列にコピーするように、データベースのデータをコピーするのはどうすればよいかなーと思ったことはありませんか?
コピペというより、普通にデータをINSERTかUPDATEすることになります。
UPDATE (teble1) SET コピーした値を入れたいカラム名 = コピーするカラム名;
たとえば、全部のデータを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
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' ;
上記のようなエラーメッセージが出て(○○はテーブル名)、データベースを更新できない場合は、そのテーブルが破損している可能性があります。
REPAIRコマンドで、修復しましょう。
//○○はテーブル名 REPAIR TABLE `○○`