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

přejmenování zamčené tabulky

Obecně má Rick právo používat nástroje Percona (viz 1 a 2 ), odpovědí na otázku je skutečně použít ALTER TABLE . Myslel jsem RENAME byl jen alias – ale zdá se, že tomu tak není .

Zdá se, že test ukazuje, že to funguje OK:

CREATE TABLE foo_new (...)

-- copy data to new table, might take very long
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id <= 3;

LOCK TABLES foo WRITE, foo_new WRITE;

-- quickly copy the tiny rest over
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id > 3;

-- now switch to the new table
ALTER TABLE foo RENAME TO foo_old;
ALTER TABLE foo_new RENAME TO foo;

UNLOCK TABLES;


  1. T-SQL:Zaokrouhlete na nejbližší 15minutový interval

  2. Operátor zřetězení řetězců v Oracle, Postgres a SQL Server

  3. Psychopg2 využívá paměť na velký výběrový dotaz

  4. Obnovte výpis na vzdáleném počítači