0

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

响应表有

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

入口表有

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

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

如何用最少的语句来做到这一点?

编辑:响应是独一无二的

4

2 回答 2

0

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

于 2013-03-18T16:08:55.487 回答
0

mysql 支持触发器。您可以将一个添加到您的 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;

因此,一旦您设置好触发器,只要您在响应中插入,触发器就会被激活

于 2013-03-18T16:11:20.000 回答