cet*_*ras 99
如果您愿意,可以更改列的顺序.
如果您的用户名列是varchar(255),那么:
alter table `mytable`
change column username username varchar(255) after `somecolumn`;
Run Code Online (Sandbox Code Playgroud)
如果它有助于更好地读取表定义,那么为什么不呢?
Bar*_*rry 45
谢谢各位回复,我已经完成了.
ALTER TABLE tbl_user MODIFY gender char(1) AFTER username;
Run Code Online (Sandbox Code Playgroud)
那就像组织你的桌子吧?你不希望你的主键字段在你的表的最后一个顺序,至少我知道如果我遇到这个问题如何协调它,我试图在基于文本的数据库中使用而不是使用gui现在.
再次感谢大家:)
小智 19
简单使用此查询
alter table `admin` modify id int(11) first;
Run Code Online (Sandbox Code Playgroud)
要么
alter table `admin` modify id int(11) after `some_column`;
Run Code Online (Sandbox Code Playgroud)
ALTER TABLE `Customers` MODIFY `UserName` INT (11) AFTER `Orders`
Run Code Online (Sandbox Code Playgroud)
完成!一条线改变位置,没有别的事可做.
我建议反对@ rahim-asgari推荐ALTER TABLE MYTABLE ADD MYFILED INT( 5 ) NOT NULL AFTER POSITION,因为你要:
ALTER TABLE `TableName` MODIFY `FieldToBeMoved` [SAME FIELD SETTINGS] [ACTION] `TargetPosition`
Run Code Online (Sandbox Code Playgroud)
[SAME FIELD SETTINGS]
指您所在领域的配置.TINYINT,VARCHAR,TEXT等.请记住包括尺寸.EJ.varchar (255)
[ACTION]
您可以移动字段BEFORE或AFTER特定字段.
替换为BEFORE或AFTER相应.
如果你的...
CustomersUserNameUserName 设置: int(11)OrdersALTER TABLE [tbl_name] MODIFY|CHANGE [column definition] [AFTER|BEFORE] [a_column]两者都有效.MODIFY如果您只想更改列顺序但不重命名,那将是更好的选择.此外,您不能组合在单个ALTER TABLE语句中重新排序的多个列.IE重新排列整数列col1,col2,col3顺序为col3,col2,col1的顺序,你将不得不这样做
ALTER TABLE tbl_name MODIFY col3 int FIRST;
ALTER TABLE tbl_name MODIFY col2 int AFTER col3;
rah*_*ari -5
您无法更改现有列的顺序。
但您可以删除要更改位置的列,然后使用此命令将其添加到您想要的位置。
ALTER TABLE `MYTABLE` ADD `MYFILED` INT( 5 ) NOT NULL AFTER `POSITION`
Run Code Online (Sandbox Code Playgroud)
或者
在表的开头添加一个字段
ALTER TABLE `MYTABLE` ADD `MYFIELD` INT( 5 ) NOT NULL FIRST
Run Code Online (Sandbox Code Playgroud)