我有两张表:table1
和rating
table1(id,name,category)
rating (cid,rating,total_rating,total_rates,photoID)
现在当我将数据插入table1时,我希望将table rating中的所有数据设置为零,以便从table1中将该特定的photoID设置为零,但我不知道怎么会有人帮助我?
答案 0 :(得分:1)
您可以使用LAST_INSERT_ID()
检索刚刚插入的ID。例如,假设PhotoID
是table1
和rating
之间的关系:
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
来从应用程序进行一次调用。假设您希望INSERT
表rating
上的记录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");