如何删除mysql中除少数列以外的所有列?

w41d8nur  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(237)

如果有一个表'table\u name',我想删除表\u name中除少数列以外的所有列。我已经能够通过指定每一个列名来手动实现这一点,但是有没有更简单的方法呢?

ltqd579y

ltqd579y1#

mysql需要对删除的每一列都进行显式处理。但是,您可以一次删除多个:

ALTER TABLE x
DROP COLUMN one,
DROP COLUMN two,
DROP COLUMN three
6ljaweal

6ljaweal2#

我认为这个任务可以简化你的要求:

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;

将db\u name、table\u name和列列表替换为要排除的“name”、“password”。

相关问题