重新排序列的简单方法?
Posted
技术标签:
【中文标题】重新排序列的简单方法?【英文标题】:Easy way to re-order columns? 【发布时间】:2011-05-04 23:22:41 【问题描述】:我正在处理数据库。在大多数表格上,列顺序不是我所期望的,我想更改它(我有权限)。例如,primary_key 的id
列很少是第一列!
有没有用 phpMyAdmin 移动列的简单方法?
【问题讨论】:
【参考方案1】:使用ALTER TABLE ... MODIFY COLUMN 语句。
ALTER TABLE table_name MODIFY COLUMN misplaced_column INT(11) AFTER other_column;
【讨论】:
我需要 col 类型信息吗? - INT(11) 是的,需要指定列类型 如果 misplaced_column 不是 INT(11) 类型怎么办。我正在尝试重新排序 DATETIME。我尝试将“INT(11)”替换为“DATETIME”,但没有成功。 是的,我在ALTER TABLE participant COLUMN last_update DATETIME AFTER home_state
上收到错误1064 ...但MODIFY
工作***.com/a/10256880/3018212【参考方案2】:
另一种方法是:
#CREATE TABLE original (
# id INT
# name TEXT
# etc...
#);
CREATE TABLE temp (
name TEXT
id INT
etc...
);
INSERT INTO temp SELECT name, id FROM original;
DROP TABLE original;
RENAME TABLE temp TO original;
【讨论】:
仅当您想一次性进行其他修改,例如类型、名称、顺序等时 为什么要像这样复制所有数据?什么时候不需要?效率低下,你只是自找麻烦。 @Tomalak,例如,如果您想从 2 个不同的表同步模式,但保留所有数据。这些表有很多不同之处。这就是Toad 的工作原理 @Petah:好的,但他只是想重新排序他的列。而已。就是这样。 @Tomalak,Eran 的回答满足了这一要求。但是为了完整起见,对于以后偶然发现这个问题的任何人,我的回答可能对他们有用。因此我说“另一种方法是……”的原因【参考方案3】:ALTER TABLE `table`
CHANGE COLUMN `field` `field`
INT(11) AFTER `field2`;
【讨论】:
【参考方案4】:这里是 sql 查询ALTER TABLE table_name MODIFY COLUMN misplaced_column Column-definition AFTER other_column; Column-definition 是完整的列定义。如果您使用 phpmyadmin,要查看列定义,请单击结构选项卡。然后单击所需列上的更改链接。然后用我们的修改任何东西点击保存。它会显示你的sql。复制 sql 并在末尾添加 *AFTER other_column*。一切都会过去的。
如果你想把 *misplaced_column* 放到第一个位置,那么 ALTER TABLE table_name MODIFY COLUMN misplaced_column 列定义优先;
【讨论】:
这是完美的,甚至可以移动datetime
列。谢谢@zahid9i【参考方案5】:
由于您提到了 phpMyAdmin,现在有一种方法可以在最新版本(4.0 及更高版本)中重新排序列。
转到表的“结构”视图,单击相应字段上的编辑(或更改)按钮,然后在“移动列”下选择您希望字段移动到的位置。
【讨论】:
没有这样的选择。 @Foreever 你用的是什么版本? 那是你的问题。您需要下载最新版本。【参考方案6】:SQL Maestro for mysql 提供了重新排序字段的工具以及 GUI,不幸的是它不是拖放操作。
-
打开表格视图
打开属性选项卡
点击边栏中的重新排序字段
单击要移动的字段,然后单击向上或向下的绿色箭头
点击确定提交数据库更新
可能还有其他程序和实用程序可以执行此操作。我从搜索中找到了这个帖子,所以我想我会分享我为其他人找到的内容。
【讨论】:
【参考方案7】:在 phpMyAdmin 版本 3.5.5 中,转到“浏览”选项卡,然后将列拖到您喜欢的位置以重新排序(例如,如果您有名为 A、B、C 的列,您只需拖动列 C在 A 和 B 之间重新排序为 A,C,B)。
【讨论】:
【参考方案8】:较新版本的简单方法:
-
打开要重新排序的表。
转到结构选项卡。
选择移动列链接。
根据需要对列重新排序。
【讨论】:
以上是关于重新排序列的简单方法?的主要内容,如果未能解决你的问题,请参考以下文章
组合不同(冗长)SQL 语句的列的最简单方法 - MSSQL
ASP.net Razor 应用程序:使用 Bootstrap、CSS 或 JS,是不是有一种简单的方法可以左右移动整个表格列?即时重新排序列