我有两张桌子:table1
和rating
table1(id,name,category)
rating (cid,rating,total_rating,total_rates,photoID)
现在,当我将数据插入表 1 时,我想为表 1 中的特定 photoID 将表评级中的所有数据设置为零,但我不知道如何......有人可以帮助我吗?
您可以使用它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());
我宁愿创建一个STORED PROCEDURE
从应用程序进行单个调用。假设您想为每个插入INSERT
记录在表上,并且将on设置为.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')
您可以使用 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;
如果要将数据插入 TABLE1 并从 TABLE2 中删除,可以编写以下列出的查询:
mysql_query("DELETE * FROM table2");