sql >> Database >  >> RDS >> Mysql

MySql - Tabel maken als deze niet bestaat, anders afkappen?

shmuel613, is het beter om uw oorspronkelijke vraag bij te werken in plaats van te antwoorden. Het is het beste als er één plek is met de volledige vraag in plaats van deze in een discussie te verspreiden.

Het antwoord van Ben is redelijk, behalve dat hij een 'niet' lijkt te hebben waar hij er geen wil. De tafel alleen laten vallen als dit niet bestaan ​​klopt niet helemaal.

Je hebt inderdaad meerdere verklaringen nodig. Ofwel voorwaardelijk aanmaken en dan invullen:

  1. CREER TIJDELIJKE TABEL INDIEN NIET BESTAAT fubar ( id int, naam varchar(80) )
  2. AFKNOP TAFEL fubar
  3. PLAATS IN fubar SELECTEER * VAN barfu

of gewoon laten vallen en opnieuw maken

  1. LAATTABEL INDIEN BESTAAT fubar
  2. CREER TIJDELIJKE TABEL fubar SELECT ID, naam VAN barfu

Met pure SQL zijn dat uw twee echte klassen van oplossingen. Ik vind de tweede beter.

(Met een opgeslagen procedure zou je het kunnen reduceren tot een enkele instructie. Iets als:TruncateAndPopulate(fubar) Maar tegen de tijd dat je de code voor TruncateAndPopulate() schrijft, ben je meer tijd kwijt dan alleen de bovenstaande SQL te gebruiken.)



  1. Hoe django-modellen met externe sleutels in verschillende DB's te gebruiken?

  2. Hoe MySQL Trigger-uitzondering / storingsinfo op te slaan in een tabel of in variabelen

  3. Cumulatieve som berekenen in PostgreSQL

  4. Rails 4 custom 404 veroorzaakt postgresql-verbindingsfout op Heroku