You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL语句交换MySQL中两列的列名?

解决MariaDB交换表列名的问题

你的SQL语法错误,且直接交换列名会触发重名冲突,具体问题和解决方案如下:

错误原因

  1. RENAME COLUMN语句不需要指定数据类型(你写的VARCHAR(100)属于冗余内容),这是导致语法报错的直接原因。
  2. 直接交换City和Salary会出现重名冲突——当你尝试把City改为Salary时,原Salary列仍存在,数据库不允许同表有重复列名。

正确操作步骤

需要通过临时列名中转来完成交换,分三步执行SQL:

-- 1. 将City临时重命名为不存在的列名
ALTER TABLE firsttry RENAME COLUMN City TO Temp_City;

-- 2. 将原Salary列重命名为City
ALTER TABLE firsttry RENAME COLUMN Salary TO City;

-- 3. 将临时列重命名为Salary
ALTER TABLE firsttry RENAME COLUMN Temp_City TO Salary;

执行完成后,表的City和Salary列名就完成了交换,列内数据不会被修改。

内容的提问来源于stack exchange,提问作者Sparsh Maheshwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:34:53