sql >> Database teknologi >  >> RDS >> Mysql

MySql - Opret tabel, hvis den ikke eksisterer Ellers afkortes?

shmuel613, ville det være bedre at opdatere dit oprindelige spørgsmål i stedet for at svare. Det er bedst, hvis der er et enkelt sted, der indeholder hele spørgsmålet i stedet for at få det spredt ud i en diskussion.

Bens svar er rimeligt, bortset fra at han ser ud til at have et "ikke", hvor han ikke vil have et. Taber kun tabellen, hvis den ikke gør det eksistere er ikke helt rigtigt.

Du har faktisk brug for flere udsagn. Opret enten betinget, og udfyld derefter:

  1. OPRET MIDLERTIDIG TABEL, HVIS IKKE FINDER fubar ( id int, navn varchar(80) )
  2. TRUNCATE TABLE fubar
  3. INSERT INTO fubar SELECT * FRA barfu

eller bare slip og genskabe

  1. SLIP TABEL HVIS FINDER fubar
  2. OPRET MIDLERTIDIG TABEL fubar SELECT id, navn FRA barfu

Med ren SQL er det dine to rigtige klasser af løsninger. Jeg kan bedre lide den anden.

(Med en lagret procedure kan du reducere den til en enkelt sætning. Noget som:TruncateAndPopulate(fubar) Men når du skriver koden til TruncateAndPopulate(), vil du bruge mere tid end blot at bruge SQL-en ovenfor.)



  1. vælg relevanstitel baseret på tag svarende til som med mysql

  2. Symfony3 - SQLSTATE[HY000] [2002] Ingen sådan fil eller mappe

  3. ROLLBACK hændelsestriggere i postgresql

  4. SQL-forespørgsel ved hjælp af IN med en liste meget langsom