我有一个名为'Details'
的表,该详细信息表有几列,其中一列是'TicketNumber'
。
我希望做的是将表命名为'Details_TicketNumber'
---不是实际的单词,而是第一个/最高票号的值。
例如,如果 TicketNumber 是“12345”
表名称为Details_12345
我怎样才能做到这一点?我已经搜索了几个小时,但今天没有成功。谢谢
这是我尝试过的(并意识到它行不通)
尝试1:
Rename table details
to (select concat("details",details.ticketnumber));
尝试2:
set @sql = CONCAT(details,
details.TicketNumber)
);
prepare s from @sql;
execute s;
最佳答案
根据 @JeffUK 和 reference 的建议他指出。我相信这应该在存储过程中工作。
DECLARE highest_ticket INT DEFAULT 0;
SELECT MAX(ticket_number) INTO highest_ticket
FROM details;
set @s = CONCAT('RENAME TABLE details to details_',highest_ticket);
prepare renameTable from @s;
EXECUTE renameTable ;
DEALLOCATE PREPARE renameTable ;
关于mysql - 编辑 mysql 表名以与一列的值组合(连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49559465/