[英]Mysql: Sub-query update on same table?
我可以看到为什么这会有问题,但是似乎无法像其他人一样解决此问题。
我不想使用sub_query增加票证号。 无法使用auto_inc,因为已经具有auto_inc'ing主键。
这是我想做的:
UPDATE tickets SET tickets.ticket_number=(
SELECT (MAX(ticket_number)+1) FROM tickets
) WHERE ticket_id=12345;
给我: You can't specify target table 'tickets' for update in FROM clause
谢谢!
如果我错了,请纠正我,但这是您想要实现的结果吗?:
UPDATE tickets SET tickets.ticket_number=(
SELECT max_ticket FROM (
SELECT (MAX(ticket_number)+1) AS max_ticket FROM tickets ) AS sub_table)
WHERE ticket_id=12345;
我以前遇到过。 在mySQL中,当尝试使用同一表中的值更新表时,必须创建另一个抽象层。
UPDATE tickets SET ticket_number=(
select t from (
SELECT (MAX(ticket_number)+1) t FROM tickets t1) as t2
) WHERE ticket_id=12345;
update tickets
set ticket_number= (
select (MAX(ticket_number)+1) from (
select * from ticket
) as x)
where ticket_id=12345;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.