将唯一记录插入一个表,将结果插入第二个表

时间:2013-03-18 15:49:49

标签: mysql sql

使用MySQL和PHP,我有两个表ResponseTable和EntryTable

响应表已

 RespID(pk,uq,ai, int), Response(string)

条目表

 EntryID(pk,uq,ai,int), RespID(int), UserID(int)

我想在ResponseTable中插入响应,其中Response不存在,然后根据响应对应的ResponseTable中的RespID将条目插入EntryTable。

如何用最少的陈述来做到这一点?

编辑: 回应是独一无二的

2 个答案:

答案 0 :(得分:0)

来自前端的最少声明是使用存储过程。但是,无论如何,您仍然需要有两个INSERT语句。你只能用一个查询插入两个不同的东西。

答案 1 :(得分:0)

mysql支持TRIGGERS。您可以在ResponseTable中添加一个激活“AFTER”“INSERT”的文件,然后您可以使用NEW关键字来使用它们。

触发器的主体可以是插入条目

类似的东西:

 CREATE TRIGGER `response_after_insert` AFTER INSERT ON `response`
  FOR EACH ROW
 BEGIN INSERT INTO entry SET RespID=NEW.RespID ON DUPLICATE KEY UPDATE operation=1;END;

因此,一旦设置了触发器,每次在respnse上插入时,触发器都会被激活

相关问题