sql >> Base de Datos >  >> RDS >> Mysql

Hacer una fila inactiva en MySQL

Puede cambiar el nombre de la tabla actual, crear la columna 'eliminado' en ella y luego crear una vista con el mismo nombre que la tabla actual, seleccionando todo donde eliminado =0. De esa manera no tienes que cambiar todas tus consultas. La vista se podrá actualizar siempre que proporcione un valor predeterminado para la columna de eliminación._

CREATE TABLE my_new_table (col1    INTEGER,
                           col2    INTEGER,
                           col3    INTEGER,
                           deleted INTEGER NOT NULL DEFAULT 0);

INSERT INTO my_new_table (col1, col2, col3)
    SELECT (col1, col2, col3)
        FROM my_table;

DROP TABLE my_table;

CREATE VIEW my_table (col1, col2, col3)
    AS SELECT (col1, col2, col3)
           FROM my_new_table
           WHERE deleted = 0;