请问大佬,可以帮忙看看这个在php中的UNIQUE KEY `id` (`id`) 的问题?

我在PHP中要约束表级完整性,如设sno为主键,可是我写成这样就错,帮我看看:
//////////创建数据表-Intellectual-/////////////
$query="CREATE TABLE `Intellectual` (
`id` int(11) NOT NULL auto_increment,
`sno` char(9) NOT NULL,
int_sub real NOT NULL,
int_ext_points real,
int_points real, 
PRIMARY KEY `sno` (`sno`),
UNIQUE KEY `id` (`id`)
)";
$bb->excu($query);
echo "<br>  数据表-Intellectual-创建成功!";
$query="CREATE TABLE `Intellectual` (
`id` int(11) NOT NULL auto_increment,
`sno` char(9) NOT NULL,
int_sub real NOT NULL,
int_ext_points real,
int_points real, 
PRIMARY KEY `sno` (`sno`)
)";
$bb->excu($query);
echo "<br> 数据表-Intellectual-创建成功!"; 
就是把这句删掉UNIQUE KEY `id` (`id`),也不对啊。 
但是我把PRIMARY KEY `sno` (`sno`)删掉,变成 UNIQUE KEY `id` (`id`)这句就合适了,但把这两句都删了,就有错了,给我解释下 UNIQUE KEY 是啥含义?

慕后森
浏览 347回答 3
3回答

手掌心

DROP TABLE IF EXISTS `dp_deploy_orig`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `dp_deploy_orig` (`pj_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '项目ID',`pj_name` varchar(30) NOT NULL COMMENT '项目名',`pj_deploy_dir` varchar(100) DEFAULT NULL COMMENT '项目发布目录',`pj_deploy_email` varchar(200) DEFAULT NULL COMMENT '项目发布邮件通知地址',`pj_status` enum('0','1') NOT NULL DEFAULT '0' COMMENT '标识测试与正式:0测试,1正式',`is_del` enum('0','1') NOT NULL,PRIMARY KEY (`pj_id`),UNIQUE KEY `pj_Id` (`pj_id`)) ENGINE=MyISAM AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COMMENT='测试项目基础数据表';/*!40101 SET character_set_client = @saved_cs_client */;--

湖上湖

PRIMARY”必须是主键的名称,并且主键必须唯一你的唯一应该设置到sno上

BIG阳

一个设主键,唯一又跑到别的字段上,怎么能对啊,他俩应该是成对在一个字段出现的,你改了试下
打开App,查看更多内容
随时随地看视频慕课网APP