shmuel613,最好更新你的原始问题而不是回复。如果有一个单一的地方包含完整的问题,而不是在一个讨论中展开,那是最好的。
本答案是合理的,除了他似乎有一个“不”他不想要的地方。删除表仅在不存在的情况下才是不正确的。
你确实需要多个语句。有条件地创建然后填充:
> CREATE TEMPORARY TABLE IF NOT EXISTS fubar(id int,name varchar(80))
> TRUNCATE TABLE fubar
> INSERT INTO fubar SELECT * FROM barfu
或者只是放下并重新创建
> DROP TABLE IF EXISTS fubar
> CREATE TEMPORARY TABLE fubar SELECT id,name FROM barfu
使用纯SQL,这是您的两个真正的解决方案。我喜欢第二更好。
(使用存储过程,您可以将其减少为单个语句。类似于:TruncateAndPopulate(fubar)但是当您编写TruncateAndPopulate()的代码时,您将花费更多的时间,而不仅仅是使用上面的SQL。)