使用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。
如何用最少的陈述来做到这一点?
编辑: 回应是独一无二的
答案 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上插入时,触发器都会被激活