![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
MYSQLにて(PHPMYADMIN上でテスト)
●レコード挿入(追加・新規作成)時は、
「Pt_create」と「Pt_update」の2つのフィールドに自動で現在時刻を作成
●レコード編集時は
「Pt_update」のみ自動で現在時刻を上書き
というありがちで申し訳ないですが、実行したいです。
現在調べたところ、
一番スマートでない方法は、
*******************************
Pt_createのほうに、種別:DATETIME
Pt_updateのほうに、種別:DATETIME
PHP側にて、$today = date("Y-m-d H:i:s");を取得して、
新規作成時・・・
$sql = INSERT INTO (`Pt_create`,`Pt_update`) VALUES ('".$today."','".$today."')・・
編集時・・・
$sql = UPDATE SET Pt_update= '".$today."'・・
*******************************
ですよね?
できたらSQLのほうで自動でやれるだけやってほしいのですが、
今は、
*******************************
Pt_createのほうに、種別:DATETIME
Pt_updateのほうに、種別:TIMESTAMP、属性:on update CURRENT_TIMESTAMP
PHP側にて、$today = date("Y-m-d H:i:s");を取得して、
新規作成時・・・
$sql = INSERT INTO (`Pt_create`) VALUES ('".$today."')・・
*******************************
ここまで省略できました。
これが限界でしょうか。
種別:TIMESTAMPを2つ設置したらうまく動作しなかったもので。
No.2ベストアンサー
- 回答日時:
えっと、省略であれば後者でいいと思います。
ただ、timestmpとdatetimeはどちらも日付型で似たような物すが、厳密に言うと全く別の物です。
まず、サポートしている範囲が違います。
timestmp:'1970-01-01 00:00:00' ~ 2037 年の一定の時点
datetime:'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'
さらには消費バイトも違います。timestmpは4バイトでdatetimeは8バイト
もし、RDBMSに依存しないような作りにするのであればtimestmp型を使うのがいいですが・・
MySQLのtimestmpは特殊仕様なので、MySQLでは私はdatetime型を使ってます。timestmpは楽ですが・・MySQLが自動でやってくれちゃうので想定外とかありそうで怖いので・・
なので、前者の方法で突っ込むのが私のやり方ですね。
新規作成時・・・
$sql = INSERT INTO (`Pt_create`,`Pt_update`) VALUES (now(), now())・・
編集時・・・
$sql = UPDATE SET Pt_update= now()
ありがとうございます。
タイムスタンプが特殊仕様とはどういうことでしょう。
前者が遠回りなようで、実装されている人もいることをしり新たな発見でした。
どちらにしようか考えて見ます。
DATETIMEだとバイト数が2倍なのですね。
大規模DBの構築となると関係してきそうですね。
はやくそんなシステムを作る仕事ができたらいいですけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php エラー 2 2022/10/23 16:43
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- WordPress(ワードプレス) WordpressのWebサイト 編集の仕方 1 2022/06/16 12:21
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コメントが消えてしまいます
-
検索後のソートについて
-
ダブルコーテーションやシング...
-
mySQLで複雑な演算
-
接続ができません
-
バージョン3.23.53からアップグ...
-
MYSQLのデータに「;」を入力
-
PHP+MySQL 接続できません
-
php・Mysql Like文で日本語が使...
-
ODP.NETのバージョン確認
-
MySQLカラム名は日本語と英数字...
-
PHPのサンプルコードが意図した...
-
LIMIT で条件を満たしているの...
-
mysql_close();の必要性について
-
クラスファイルでエラーが出て...
-
MysqlにURLを登録する方法
-
Linuxで、Pearコマンドが使えな...
-
MySQL コマンド上の文字化けを...
-
バッチファイルでTRUNCATE TABLE
-
SQLのVARCHARとVARCHAR2の違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLiteについて
-
コメントが消えてしまいます
-
.sqlのファイルをそのままコマ...
-
phpからinsertできない
-
PEARでレコード数の取得
-
【php+mysql】mysqlのレコード...
-
PHP+MySQLから結果セット取得後...
-
トランザクションについて教え...
-
レコード新規・編集時に自動で...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
旧filemakerで和暦(令和など)...
-
VBAで変数内に保持された二次配...
-
プライマリーキーの昇順でソー...
-
ERROR 1045 (28000) (using pas...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
おすすめ情報