在mysql中,如果表存在,如何避免选择
假设我运行以下查询:
CREATE TEMPORARY TABLE IF NOT EXISTS FISH SELECT 'a';
它将创建一个其中包含“a”的临时表。现在,如果我再次运行查询,该表将不会重新创建,但选择将再次发生 - 因此,该表中将有两次“a”。如何防止这种情况发生,即如果表存在,则不应执行任何操作?
Let's say I run the following query:
CREATE TEMPORARY TABLE IF NOT EXISTS FISH SELECT 'a';
it will create a temporary table with 'a' in it. Now, if I run the query again, the table will not be recreated, but the select will happen again - so, the table will have 'a' twice in it. How do I prevent this from happening, i.e. if the table exists, no action should be carried out?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此行为在手册中明确记录,引用:
并且没有提到任何方法来改变这种行为,所以我想你唯一的解决方案是首先使用单独的查询检查表是否存在,然后
CREATE...SELECT
表(如果不存在) 。This behavior is explicitly documented in the manual, quote:
and there is no mention of any method to change this behavior so I suppose your only solution is to first check for table's existence with a separate query then
CREATE...SELECT
the table if it doesn't exist.