0

私は21個のテーブルを持つMySQLデータベースを持っています。各テーブルには、「作成」列(タイムスタンプ)があります。このフィールドは行の挿入時間を保持します。

でも:

1-次のように、各テーブルの列を埋めるためのトリガーを作成できます。

CREATE TRIGGER `created` BEFORE INSERT ON `some_table`
 FOR EACH ROW SET NEW.`created`=NOW()

2-PHPで処理できます:

    $result = mysqli_query($con,"INSERT INTO table_name (column1, column2, column3,created)
VALUES (value1, value2, value3,now()) ");

各テーブルのトリガーを書くことにはオーバーヘッドがあります。そうですか?どちらがパフォーマンスに特化していますか? 一体どれがいいの?

4

1 に答える 1

3

TIMESTAMP プロパティを構成する場合、この列を自分で入力する必要はありません... http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html

ドキュメントから明確にするために、ここでは、目的の動作に正しく構成されている場合、後続の更新でタイムスタンプ フィールドが変更されないことを示す実際の例を示します。

create temporary table example (apID int auto_increment, 
                      audit timestamp DEFAULT CURRENT_TIMESTAMP, 
                      name varchar(50),
                      primary key(apID));
insert into example(name) values('test');
select * from example;
update example set name='tes' where apID=1;
select * from example;
于 2013-06-11T09:45:17.850 に答える