Solución:
En realidad, hay una manera, por supuesto, necesitas tener permisos para hacer esto …
SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<columns_to_omit>,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>' AND TABLE_SCHEMA = '<database>'), ' FROM <table>');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
Reemplazo <table>, <database> and <columns_to_omit>
En las definiciones de mysql (manual) no existe tal cosa. Pero si tiene una gran cantidad de columnas col1
, …, col100
, lo siguiente puede ser útil:
DROP TABLE IF EXISTS temp_tb;
CREATE TEMPORARY TABLE ENGINE=MEMORY temp_tb SELECT * FROM orig_tb;
ALTER TABLE temp_tb DROP col_x;
#// ALTER TABLE temp_tb DROP col_a, ... , DROP col_z; #// for a few columns to drop
SELECT * FROM temp_tb;
¿Funcionaría mejor una vista en este caso?
CREATE VIEW vwTable
as
SELECT
col1
, col2
, col3
, col..
, col53
FROM table
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)