table:message [id,username,userid,message,type,timediff,timestamp]
我有一张表叫message。当消息启动时,会创建一个新行,timestamp和timediff为null。
当消息结束时,我想把它插入到一行中的时间差。
eg启动 1,username,1234,message,start/s,null,000001
结束: 2,username,1234,message,end/s,**20**,000021
```
INSERT into Messages.message (username,userid,message,type,timediff)
values ("username","1234","Test","Ended/S",(
select sum(unix_timestamp(CURRENT_TIMESTAMP())-unix_timestamp(timestamp))
from messages
WHERE userid = "1234"
AND type = "Started/S"
Order by timestamp desc
limit 1))
我也有一个错误,我无法理解 `Error Code: 1093. You can't specify target table 'message' for update in FROM clause`
1条答案
按热度按时间xt0899hw1#
最好使用
INSERT ... SELECT
这样的查询的语法。我认为这样做应该奏效:我在sqlfiddle上做了一个小演示,您可以看到它的运行。