编辑 mysql 表名以与一列的值结合(连接)
EDIT mysql tablename to combine with value of one column (concatenate)
我有一个名为 'Details'
的 table,详细信息 table 有几列,其中一列是 'TicketNumber'
。
我希望做的是命名 table 'Details_TicketNumber'
--- 不是实际的单词,而是 first/highest 票号的值。
例如,如果 TicketNumber 是“12345”
table 名称将是 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 ;
我有一个名为 'Details'
的 table,详细信息 table 有几列,其中一列是 'TicketNumber'
。
我希望做的是命名 table 'Details_TicketNumber'
--- 不是实际的单词,而是 first/highest 票号的值。
例如,如果 TicketNumber 是“12345”
table 名称将是 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 ;