SET @myquery = (SELECT CONCAT('ALTER TABLE Table_Name ', GROUP_CONCAT(' DROP
COLUMN ', `COLUMN_NAME`))
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='DB_NAME'
AND `TABLE_NAME`='Table_Name' AND `COLUMN_NAME` NOT IN ('name', 'password'));
PREPARE stmt FROM @myquery;
EXECUTE stmt;
2条答案
按热度按时间ltqd579y1#
mysql需要对删除的每一列都进行显式处理。但是,您可以一次删除多个:
6ljaweal2#
我认为这个任务可以简化你的要求:
将db\u name、table\u name和列列表替换为要排除的“name”、“password”。