Py学习  »  DATABASE

如何创建主键不是自动递增的mysql

Daniel Kaplan • 5 年前 • 1325 次点击  

正在尝试创建下表:

create table Cust (Name varchar(50) UNIQUE, Cat1 varchar(50), RowID int NOT NULL AUTO_INCREMENT, PRIMARY KEY (Name));

我得到的错误是

表定义不正确;只能有一个自动列 必须定义为密钥

我想用“name”而不是rowid索引。所以即使我以:

...PRIMARY KEY (Name, RowID));

它失败了。当然 ...PRIMARY KEY (RowID, Name)); 有效但不是我想要的。

有人能帮我看看灯吗?

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/42966
 
1325 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Bill Karwin
Reply   •   1 楼
Bill Karwin    6 年前

您只需要为auto inc列创建一个键(也称为索引)。它不必是主键,但必须是某个索引中最左边的列。

create table Cust (
  Name varchar(50), 
  Cat1 varchar(50), 
  RowID int NOT NULL AUTO_INCREMENT, 
  PRIMARY KEY (Name),
  KEY (RowId)
);

不要将唯一选项添加到“名称”列。这就创建了一个额外的多余的惟一索引,您不需要它。任何主键都已是唯一的。

我想说汽车公司和rowid不是一回事。不要指望汽车公司有连续的价值观。