给MySQL表添加主键

修改过后的表

mysql> desc countryRiskLevel;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id          | int(11)     | NO   |     | NULL    |       |
| countryName | varchar(30) | NO   |     | NULL    |       |
| countrycd   | varchar(2)  | NO   | PRI | NULL    |       |
| riskLevel   | int(11)     | YES  |     | 1       |       |
| riskClass   | varchar(8)  | NO   |     | low     |       |
+-------------+-------------+------+-----+---------+-------+

今天使用Navicat这个客户端写了一些SQL给已有的表添加主键,其语句如下:

ALTER TABLE countryRiskLevel ADD PRIMARY KEY ( countrycd );

这条语句在Navicat无论如何都会报错误

但是在MySQL去执行同样的语句却是成功的。

另外,如果用auto_increment 设置了自增列,这个自增列必须为主键,否则会报错。

参考链接:

https://www.php.cn/mysql-tutorials-418318.html

原文地址:https://www.cnblogs.com/majestyking/p/11241547.html

时间: 2024-07-30 00:34:35

给MySQL表添加主键的相关文章

Oracle使用游标为所有用户表添加主键语句

应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在ID字段,则判断是否是整形,如果不是就重命名字段为[表名ID],然后新增ID,如果不存在则直接添加自增一ID的主键 操作说明:打开PQSQL连接数据库后直接执行下面的详细脚本代码运行即可,脚本有风险(会删除原来的索引跟主键约束),请不要轻易在正式运行的数据库上直接执行 --Oracle使用游标为所有用

创建表 添加主键 添加列常用SQL语句

--删除主键 alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)--添加非聚集索引的主键alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……) 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMARY

SQL Server 创建表 添加主键 添加列常用SQL语句

--删除主键 alter table 表名 drop constraint 主键名 --添加主键 alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……) --添加非聚集索引的主键 alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……) 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIM

SQL Server 创建表 添加主键 添加列常用SQL语句【转】

--删除主键alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)--添加非聚集索引的主键alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……) 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMARY K

mysql给已存在的表添加主键pk_id在第一行

1.对于有的已经存在联合主键的,先删除. alter table table_name drop primary key; 2.然后在表的第一行添加id,名称为pk_id alter table table_name add pk_id bigint(20) not null auto_increment primary key first; 3.如果要给数据库所有表都加上自增id,名称为pk_id SELECT CONCAT('alter table ', table_name,' add p

Oracle 给表添加主键和使ID自增

1.关于主键:在建表时指定primary key字句即可:create table test( id number(6) primary key, name varchar2(30));如果是对于已经建好的表,想增加主键约束,则类似语法:alter table test add constraint pk_id primary key(id); 其中add constraint 和 primary key是关键字,pk_id是主键名称,自定义的额,只要不重复即可. 2.关于id自增功能,也很简单

PHP查询MYSQL表的主键

$sql = "SELECT * from Person"; $result = mysql_query($sql,$con); while ($property = mysql_fetch_field($result)) { echo "Field name: " . $property->name . "<br />"; echo "Table name: " . $property->table

添加主键跟外键

表(一)Student (学生表) 添加主键约束学号SNO 表(二)Course(课程表) 添加主键约束课程号CON,添加外键约束教工编号TON 表(三)Score(成绩表) 添加两个外键约束学号SNO和课程号CNO,主键约束是Sno+ Cno. 表(四)Teacher(教师表) 添加主键约束教工编号TNO 主键约束: 1.主键约束包含非空约束跟唯一约束,只能有一个: 2.通过主键列能够确定唯一的一行数据: 3.自动按照主键列生成索引,提高数据检索效率: 4.确保数据的唯一性也规范性. 检查约束

mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法

[CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问题 [CSDN博客] mysql 主从复制 双主从复制原理 防止主键重复问题(必看) [CSDN博客] replace into导致mysql自增列导致主键重复问题分析 [CSDN博客] 一个循环更新某库所有表所有非主键列的值方法(sql 2005 & mysql) [CSDN博客] mysql i