0

私は2つのテーブルを持っています:table1そしてrating

table1(id,name,category) 
rating (cid,rating,total_rating,total_rates,photoID)

そして今、私がテーブル1にデータを挿入するとき、私はテーブル1からのその特定のphotoIDに対してテーブル評価のすべてのデータをゼロに設定したいのですが、私は方法がわかりません..誰かが私を助けることができますか?

4

4 に答える 4

1

MySqlトリガーを使用できますhttp://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html

CREATE TRIGGER ins_rating AFTER INSERT ON table1
FOR EACH ROW
BEGIN
    INSERT INTO rating (cid,rating,total_rating,total_rates,photoID)
         VALUES( NEW.ID ,0,0,0,null)
END;
于 2013-02-20T11:44:08.600 に答える
1

STORED PROCEDUREアプリケーションから単一の呼び出しを行うために を作成したいと思います。すべての挿入に対してINSERTtable にレコードを作成し、onが として設定されていると仮定します。ratingtable1IDtable1AUTO_INCREMENT

DELIMITER $$
CREATE PROCEDURE procedureName
(
    IN _name VARCHAR(25),
    IN _category VARCHAR(25)
)
BEGIN
    INSERT INTO table1 (name, category)
    VALUES (_name, _category);

    SET @last_ID := LAST_INSERT_ID();

    INSERT INTO rating (cid, rating, total_rating, total_rates, photoID)
    VALUES (@last_ID, 0,0,0,0);
END $$
DELIMITER ;

プロシージャを呼び出し、

CALL procedureName('nameHere','categoryHere')
于 2013-02-20T11:43:14.713 に答える
1

を使用LAST_INSERT_ID()して、挿入した ID を取得できます。たとえばPhotoID、 と の間の関係を次のように仮定table1ratingます。

insert table1 (name,category) values ('waterfall 2', 'nature');
insert rating (rating,total_rating,total_rates,photoID) values
    (0, 0, 0, last_insert_id());
于 2013-02-20T11:42:54.947 に答える
0

TABLE1 にデータを挿入し、TABLE2 から削除する場合は、以下のクエリを記述できます。

mysql_query("DELETE * FROM table2");
于 2013-02-20T11:42:47.867 に答える