sql >> Databáze >  >> RDS >> Mysql

MySql - Vytvořit tabulku, pokud neexistuje Jinak zkrátit?

shmuel613, bylo by lepší aktualizovat vaši původní otázku, než odpovídat. Je lepší, když existuje jediné místo obsahující úplnou otázku, než aby byla rozprostřena v diskusi.

Benova odpověď je rozumná, až na to, že se zdá, že má „ne“ tam, kde je nechce. Tabulku zahodíte, pouze pokud není existovat není úplně správné.

Opravdu budete potřebovat více prohlášení. Buď podmíněně vytvořte a poté naplňte:

  1. VYTVOŘTE DOČASNOU TABULKU, POKUD NEEXISTUJE fubar ( id int, název varchar(80) )
  2. ZKRÁTIT TABULKU fubar
  3. INSERT INTO fubar SELECT * FROM barfu

nebo prostě pusťte a znovu vytvořte

  1. PUSTIT TABULKU, POKUD EXISTUJE fubar
  2. VYTVOŘIT TEMPORARY TABLE fubar SELECT id, název FROM barfu

S čistým SQL to jsou vaše dvě skutečné třídy řešení. To druhé se mi líbí víc.

(S uloženou procedurou ji můžete zredukovat na jeden příkaz. Něco jako:TruncateAndPopulate(fubar) Ale než napíšete kód pro TruncateAndPopulate(), strávíte více času než jen používáním výše uvedeného SQL.)



  1. Při navazování připojení k serveru SQL došlo k chybě související se sítí nebo specifickou instancí

  2. Oracle ORA-12154:TNS:Nelze vyřešit název služby Chyba?

  3. Světový den zálohování:4 zajímavá fakta o ztrátě dat, která byste měli vědět

  4. Jak vypočítat nenafouknutý počet z denormalizované tabulky