目前我有以下MySQL表: Employees (empID, empName, department);
我想将表更改为以下内容: Employees (empID, department, empName);
如何使用ALTER语句完成此操作?
注意:我只想更改列位置.
我想更改数据库表的列位置而不会丢失数据.
例如:
当前表格:
+----+------+-------+----------+
| id | name | email | password |
+----+------+-------+----------+
Run Code Online (Sandbox Code Playgroud)
至
+----+----------+------+-------+
| id | password | name | email |
+----+----------+------+-------+
Run Code Online (Sandbox Code Playgroud) 我知道,我们不能使用重命名列modify column syntax,但可以change column syntax.
我的问题是:主要用途是modify syntax什么?
例如,
alter table tablename change col1 col1 int(10) not null
Run Code Online (Sandbox Code Playgroud)
代替
alter table tablename modify col1 int(10) not null
Run Code Online (Sandbox Code Playgroud)
编辑
问题已被替换
主要用途是modify syntax什么?
以上问题由以下内容取代
为什么我们必须使用更改列而不是修改列?
我正在研究一个数据库.在大多数表中,列顺序不是我所期望的,我想改变它(我有权限).例如,primary_key的id列很少是第一列!
是否有一种使用phpMyAdmin移动列的简单方法?
请告诉我如何将现有列(包含的值)放在mysql的第一个位置.假设我有一个表EMP_DTLS,并且有像NAME,SALARY,DOJ,DOB,EMAIL_ID和EMP_ID这样的列包含每列中的值.现在我想把这个EMP_ID放在第一个位置.
提前致谢.
我已经尝试了之前讨论过的查询,但这些查询对我不起作用.
如何使用Alembic或SQLAlchemy将另一列之后的列添加到数据库?这相当于这个SQL子句:
ALTER TABLE foo
CHANGE COLUMN bar
bar COLUMN_DEFINITION_HERE
AFTER OTHER_COLUMN;
-- or
ALTER TABLE foo ADD COLUMN baz AFTER bar;
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个邮件列表线程中的建议,但它没有帮助.
虽然查询时顺序无关紧要,但在SQL shell中有助于大表的可读性.