
こんにちは。お世話になっております。
現在、右も左も分からないまま、書籍を参考に、DB(MySQL)を触り始めて2ヶ月足らずの初心者ですが、とあるサイトに、PostgreSQLの設定として以下のようなものが紹介されておりました。
sid、uidなどは分かるのですが、最後のフィールド(rdate)はどのような意味を持つものなのでしょうか?
初めて見る内容のものなので、DBの違いによるものなのか?などなど、DBの設定の意味が分からず躓いております。
お忙しい中恐縮ですが、ご教授頂ければ幸いです。
CREATE TABLE session (
sid varchar(32) primary key,
uid varchar(16) not null,
password varchar(16),
rawdata varchar(512),
rdate timestamp default 'now'
);
No.2ベストアンサー
- 回答日時:
>rdate timestamp default 'now'
この文の意味としては、rdateというtimustamp型(日時を表す)の列に、insert時に値を設定しなかった場合、システムから現在日時を受け取って格納するという意味です。
>MySQLの場合、どのような属性が適切なのかをお教えいただければ
データ型のtimestampは、PostgreSQL、MySQLの双方に存在し、日時を表す点では等価と考えて問題ないでしょう。
→実際にはPostgreSQLの方が、timestamp型でもいくつかの表現形式を持っているという違いがあります。
default 'now'というのは、PostgreSQLの独特の記述で、一般的な表記方法としてdefault current_timestampという表記がPostgreSQLでも等価の意味で行えます。この表記方法は、MySQLでも同じです。
→PostgreSQL 8.0.0では、default 'now'と記述すると、最初のinsert時に受け取った現在日時がその後も繰り返し受け渡しされ、これはバグだと思われます。current_timestamp指定では、insert毎に最新の日時が仕様通り返されます。
PostgreSQLでも一般的なSQLの書き方にすれば、今回のケースでは、MySQLでもそのままの文で表定義を行えます。
CREATE TABLE session (
sid varchar(32) primary key,
uid varchar(16) not null,
password varchar(16),
rawdata varchar(512),
rdate timestamp default current_timestamp
);
chukenkenkou様
こんばんは。早速のお返事を有難う御座います。
分かりやすい説明で、とても参考になりました。
お忙しい中、有難う御座いました。
No.1
- 回答日時:
この表定義は、どこからの引用ですか?
ユーザの表定義なのですから、各列がどういう意味を持つのかは、引用元で調べるしかありません。
運良く(?)この表定義の引用元と思われるサイトを、私の方でも発見できました。
PHPでのコーディングのソース上のコメントでは、以下のように記されていますね。
処理内容は検証していないので、ご自分で確認してください。
=====ここから、引用=====
// シリアライズされたセッションデータ保管用項目名。
// 読み出し用関数の作成が楽だったので、これも
// 保管するようにしちゃいました。
define(S_RAW_DATA_FIELDNAME, "rawdata");
// セッションID保管用項目名。
define(S_SID_FIELDNAME, "sid");
// セッション登録日保管用項目名。
define(S_RDATE_FIELDNAME, "rdate");
=====ここまで=====
参考URL:http://www.stackasterisk.jp/tech/php/php03_06.jsp
chukenkenkou様
はじめまして、こんにちは。
仰るとおり、この定義はstackasterisk.jp様のところからの引用です。
chukenkenkou様も仰るように、サイト内のコードにはコメントで説明があるのですが、DBのフィールド属性であるtimestamp default 'now'が、MySQLでは使えないといった記事もあったりしたので、MySQLの場合、どのような属性が適切なのかをお教えいただければと質問させて頂きました。
このての説明も、いくつかのサイトには記してあるのですが、動作確認をしようにも、このサンプルコード自体を動かす事が出来ずにおりまして、コードが原因なのか、DBの設定が原因なのか、を解消できればと…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
1未満と1以下の違い
-
最大元と極大元の定義の違いが...
-
\\mathrmと\\rmの違いについて...
-
B5の半分を印刷
-
無限から無限を引いたら何にな...
-
日本語 ことば ひとまわり ふた...
-
√6=√(-2)(-3)=√(-...
-
eの0乗は1ってどういう原理です...
-
1wordとは、何文字ですか?
-
内積が定義できないベクトル空...
-
数学の問題での問題
-
べき乗
-
0を無限個足すと・・・
-
「logx^2=2logx」が間違って...
-
数学基礎論の入門書
-
ヘシアンが0の場合どうやって極...
-
性暴力ってどこまでOK,どこから...
-
定義式
-
エクセルで「”」インチの表示形...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
1未満と1以下の違い
-
ヘシアンが0の場合どうやって極...
-
べき乗
-
無限から無限を引いたら何にな...
-
最大元と極大元の定義の違いが...
-
eの0乗は1ってどういう原理です...
-
「互いに素」の定義…「1と2は互...
-
性暴力ってどこまでOK,どこから...
-
日本語 ことば ひとまわり ふた...
-
複雑な家庭とは
-
「logx^2=2logx」が間違って...
-
1」は昔は素数だったそうです...
-
5桁の整数nにおいて,万の位,...
-
合法ロリの年齢的定義は、何歳...
-
数学の質問です loge 3=1.1に...
-
定義できないことを教えてくだ...
-
数学の両辺2乗と√について教え...
-
p⇒q=(¬p)∨qについて
-
同時(性)の定義の意味、そして...
おすすめ情報