Mysql查询INSERT两个表

时间:2013-02-20 11:37:44

标签: mysql sql

我有两张表:table1rating

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

现在当我将数据插入table1时,我希望将table rating中的所有数据设置为零,以便从table1中将该特定的photoID设置为零,但我不知道怎么会有人帮助我?

4 个答案:

答案 0 :(得分:1)

您可以使用LAST_INSERT_ID()检索刚刚插入的ID。例如,假设PhotoIDtable1rating之间的关系:

insert table1 (name,category) values ('waterfall 2', 'nature');
insert rating (rating,total_rating,total_rates,photoID) values
    (0, 0, 0, last_insert_id());

答案 1 :(得分:1)

我宁愿创建一个STORED PROCEDURE来从应用程序进行一次调用。假设您希望INSERTrating上的记录table1上的每个插页ID table1 AUTO_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')

并调用该程序,

{{1}}

答案 2 :(得分: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;

答案 3 :(得分:0)

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

mysql_query("DELETE * FROM table2");