当前位置:  开发笔记 > 编程语言 > 正文

MySql - 创建表如果不存在那么截断?

如何解决《MySql-创建表如果不存在那么截断?》经验,为你挑选了1个好方法。

这是更新的问题:

当前查询正在执行以下操作:

$sql1 = "TRUNCATE TABLE fubar";
$sql2 = "CREATE TEMPORARY TABLE IF NOT EXISTS fubar SELECT id, name FROM barfu";

第一次运行包含此方法的方法时,它会在truncate上生成错误消息,因为该表尚不存在.

是我唯一的选择CREATE TABLE,运行TRUNCATE TABLE,然后填写表格?(3个单独的查询)

原来的问题是:

我一直很难在MySql中找出以下内容是否可行,而无需编写块sql:

CREATE TABLE fubar IF NOT EXISTS ELSE TRUNCATE TABLE fubar

如果我在create table之前单独运行truncate,并且该表不存在,那么我会收到一条错误消息.我试图消除该错误消息,而不必添加任何更多的查询.

此代码将使用PHP执行.



1> mdahlman..:

shmuel613,最好更新原始问题而不是回复.最好是在一个地方包含完整的问题,而不是在讨论中展开.

本的答案是合理的,除了他似乎有一个'不'他不想要的地方.只有在存在的情况下才删除表格是不对的.

你确实需要多个陈述.有条件地创建然后填充:

    CREATE TEMPORARY TABLE如果不是fubar(id int,name varchar(80))

    TRUNCATE TABLE fubar

    INSERT INTO fubar SELECT*FROM barfu

或者只是删除并重新创建

    DROP TABLE如果存在fubar

    CREATE TEMPORARY TABLE fubar SELECT id,name FROM barfu

使用纯SQL,这些是您真正的两类解决方案.我更喜欢第二个.

(使用存储过程,您可以将其缩减为单个语句.类似于:TruncateAndPopulate(fubar)但是当您编写TruncateAndPopulate()的代码时,您将花费更多时间而不仅仅使用上面的SQL.)

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有