为了以更线性的方式记录sql代码,我想在creation语句之前显示将要创建的表的描述。所以我的第一个想法是把它放在一个用户定义的变量中,我可以用它来填充注解指令,但它似乎不受支持(至少在我必须处理的5.6版本中):
set @description = 'The following table is a useless dummy test.';
drop table if exists `test`;
create table `test` (dummy int) comment @test; -- syntax error
show table status where name='test';
有没有其他方法可以达到最初的目标?当然,使用 --
在creation语句之前添加sql注解,但是这样它就不会出现在记录的数据库结构中,或者以可怕的重复为代价。
2条答案
按热度按时间g6baxovj1#
尽管它与问题不匹配,但这里有一个解决其根本问题的方法:将表的描述直接放在它的creation语句旁边。
mysql语法要求将附加到表的注解放在末尾,但是如果表有许多字段,每个字段在一行或几行上声明,那么可以在看到其声明开始时快速发送表注解。
现在,您可以轻松地创建一个表,将其注解作为唯一的附加语句,然后将其修改为包含它应该包含的字段。
x33g5p2x2#
我们可以使用动态sql来实现这一点:
请注意,每个准备好的语句正是这样的;一句话。因此,要从命令行执行此操作,您可能需要3条语句来涵盖要运行的完整逻辑。