0

私は2つのテーブルを持っていますcountdown:time_limit

countdown:
    -------    ---------    ---------    -------
    cnt_id     tlimit_id    cnt_start    cnt_end
    -------    ---------    ---------    -------
    1          1            08:00:00     x
    2          3            09:00:00     y

time_limit
    ---------    ----------
    tlimit_id    tlimit_val
    ---------    ----------
    1            00:30:00
    2            01:00:00
    3            01:30:00

したがって、x=08:30:00 および y=10:30:00

私の質問は次のとおりです: cnt_end の値が常に (cnt_start) PLUS (tlimit_val) になるように、(php スクリプトを使用せずに) データベース テーブルを設定する方法はありますか?

4

2 に答える 2

0

で提案されているように、テーブルGoat COの上にビューを作成してcountdown、計算された値をcnt_end列に自動的に挿入できます。

CREATE VIEW magic_countdown AS
SELECT a.cnt_id, a.tlimit_id, a.cnt_start, a.cnt_start + b.tlimit_val AS cnt_end
FROM countdown a, time_limit b
WHERE a.tlimit_id = b.tlimit_id;

magic_countdownSQL ステートメントで使用して、代わりにデータを挿入します。countdown

別の方法は、トリガーを使用することです。

CREATE TRIGGER triggername AFTER INSERT (or UPDATE)
ON countdown
FOR EACH ROW
UPDATE countdown SET countdown.cnt_end=time_limit.tlimit_val+countdown.cnt_start WHERE countdown.tlimit_id = time_limit.tlimit_id

トリガーについては、MySQL のドキュメントを参照してください。

于 2013-10-31T16:13:28.680 に答える