Ram*_*dav 1 mysql mysql-workbench
如果有一个表“Table_Name”,我想删除 Table_Name 中的所有列(除了少数列)。我已经能够通过指定每个列名称来手动执行此操作,但是有没有更简单的方法来执行此操作?
小智 5
我认为这个任务可以简化你的要求:
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;
Run Code Online (Sandbox Code Playgroud)
将 DB_NAME、Table_Name 和列列表替换为要排除的“名称”、“密码” 。
| 归档时间: |
|
| 查看次数: |
2823 次 |
| 最近记录: |