如何创建没有主键的int列?

时间:2014-07-06 08:21:38

标签: mysql phpmyadmin primary-key

我在phpmyadmin工作,我有一个包含以下列的SQL表:

image_id, int(11), AUTO_INCREMENT, Primary key, Unique
image_name, text
photographer, text
collection, text

当我尝试将新的int列添加到我要调用的表image_order时,我总是最终获得属性:primary key and unique

因为我收到了不需要的主键,我做错了什么?我可以以某种方式删除主键,以便输入重复值吗?

2 个答案:

答案 0 :(得分:0)

如果你的表是

create table images
(
  image_id int(11) AUTO_INCREMENT Primary key,
  image_name text,
  photographer text,
  collection text
);

然后使用它来添加列

alter table images
add column image_order int

SQLFiddle demo

答案 1 :(得分:0)

我没有看到这种行为。你可能不会从"索引"中选择任何东西。创建时的下拉菜单?您有什么phpMyAdmin版本?

我已按照您的描述开始使用表格,然后转到结构选项卡,并在表格末尾添加1列#34;然后按吧。

在该页面上,我输入"名称" ' image_order',我不需要更改" Type"因为默认值是INT。无需改变任何其他内容:

Add column dialog

这给出了预期的结果:

CREATE TABLE IF NOT EXISTS `stackdemo` (
`image_id` int(11) NOT NULL,
  `image_name` text NOT NULL,
  `photographer` text NOT NULL,
  `collection` text NOT NULL,
  `image_order` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

ALTER TABLE `stackdemo`
 ADD PRIMARY KEY (`image_id`), ADD UNIQUE KEY `image_id` (`image_id`);

ALTER TABLE `stackdemo`
MODIFY `image_id` int(11) NOT NULL AUTO_INCREMENT;

向我们展示如何创建附加列,以防万一有些奇怪的东西,但它似乎对我有用。

另外,您可能不需要定义UNIQUE PRIMARY键;这里可能只需要PRIMARY。有关更多详细信息,请参阅difference between primary key and unique key