问题:MySQL中为什么prepare视图不展开?
回答:在MySQL中,prepare语句可以将一条SQL语句编译成二进制格式,以提高执行效率。而视图则是一种虚拟表,它并不存储数据,而是根据定义的SQL语句动态生成结果集。
在MySQL中,如果我们使用了prepare语句定义了一个视图,那么这个视图不会被展开,这是因为视图本身就是一条SQL语句,而prepare语句将这条SQL语句编译成了二进制格式,无法再次修改。
ts_view的视图,它的定义如下:
tsts WHERE age >18;
如果我们使用prepare语句来定义这个视图,如下:
ttsts WHERE age >?';
那么这个视图就不会被展开,如果我们执行下面的语句:
t USING 18;
ts_view的视图,它的定义和我们之前手动定义的视图是一样的。
总结来说,MySQL中的prepare语句可以提高SQL语句的执行效率,但是当我们使用prepare语句定义视图时,这个视图不会被展开,