0

我有两张桌子:table1rating

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

现在,当我将数据插入表 1 时,我想为表 1 中的特定 photoID 将表评级中的所有数据设置为零,但我不知道如何......有人可以帮助我吗?

4

4 回答 4

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 回答
1

我宁愿创建一个STORED PROCEDURE从应用程序进行单个调用。假设您想为每个插入INSERT记录在表上,并且将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

您可以使用 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 回答
0

如果要将数据插入 TABLE1 并从 TABLE2 中删除,可以编写以下列出的查询:

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