Bre*_*ett 27 mysql sql mysql-error-1075
我正在将我的mysql db表从id(auto)更改为uid.
ALTER TABLE companies DROP PRIMARY KEY;
ALTER TABLE companies ADD PRIMARY KEY (`uuid`);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误..
[SQL] ALTER TABLE companies DROP PRIMARY KEY;
[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Run Code Online (Sandbox Code Playgroud)
据我所知,我需要将id更改为非自动增量,因为我将其作为主键删除.更改列以删除主键和自动增量的语法是什么?
ALTER TABLE companies change id id ?????????? int(11)
Run Code Online (Sandbox Code Playgroud)
Lau*_*nen 34
如果需要id在单个SQL语句中从列中删除自动增量和主键,则应执行以下操作:
ALTER TABLE companies DROP PRIMARY KEY, CHANGE id id int(11);
Run Code Online (Sandbox Code Playgroud)
实际上,您应该能够在单个ALTER TABLE查询中执行所有操作:
ALTER TABLE companies
DROP PRIMARY KEY,
CHANGE id id int(11),
ADD PRIMARY KEY (uuid);
Run Code Online (Sandbox Code Playgroud)
当您不更改列的名称时,您可以使用MODIFY:
ALTER TABLE `companies` MODIFY `id` int(11),
DROP PRIMARY KEY,
ADD PRIMARY KEY (`uuid`);
Run Code Online (Sandbox Code Playgroud)
通过在一个 alter 语句中完成所有这些操作,它也被视为原子的,因此查询之间不会出现不一致的情况(与在行中运行多个语句不同)。
删除自动增量的查询是:
alter table companies DROP PRIMARY KEY,
change id id int(11) NOT NULL
Run Code Online (Sandbox Code Playgroud)
现在您可以看到表的结构没有自动增量。
如果您想在另一列中添加主键,请使用此查询
alter table companies add PRIMARY KEY(uuid)
Run Code Online (Sandbox Code Playgroud)
如果您想在同一查询中删除自动增量、主键并将主键添加到新列,请使用此查询
alter table comapnies DROP PRIMARY KEY,
change id id int(11) NOT NULL,
add PRIMARY KEY(uuid)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43588 次 |
| 最近记录: |