shmuel613, seria melhor atualizar sua pergunta original em vez de responder. É melhor se houver um único lugar contendo a pergunta completa em vez de tê-la espalhada em uma discussão.
A resposta de Ben é razoável, exceto que ele parece ter um 'não' onde ele não quer um. Soltar a tabela somente se não existir não está certo.
Você realmente precisará de várias declarações. Ou crie condicionalmente e depois preencha:
- CREATE TEMPORARY TABLE IF NOT EXISTS fubar ( id int, name varchar(80) )
- TRUNCATE TABLE fubar
- INSERIR NO fubar SELECT * FROM barfu
ou simplesmente solte e recrie
- SOLTAR TABELA SE EXISTE fubar
- CREATE TEMPORARY TABLE fubar SELECT id, name FROM barfu
Com SQL puro, essas são suas duas classes reais de soluções. Gosto mais do segundo.
(Com um procedimento armazenado, você pode reduzi-lo a uma única instrução. Algo como:TruncateAndPopulate(fubar) Mas quando você escrever o código para TruncateAndPopulate(), você gastará mais tempo do que apenas usando o SQL acima.)