淘先锋技术网

首页 1 2 3 4 5 6 7

问题: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语句定义视图时,这个视图不会被展开,