MySQL中添加、删除约束
程序员文章站
2023-04-06 14:31:35
MySQL中6种常见的约束:主键约束(primary key)、外键约束(foreign key)、非空约束(not null)、唯一性约束(unique)、默认值约束(defualt)、自增约束(aoto_increment),下面是添加、删除这几种约束的一些方法。 --我已经建了数据库; 1 - ......
mysql中6种常见的约束:主键约束(primary key)、外键约束(foreign key)、非空约束(not null)、唯一性约束(unique)、默认值约束(defualt)、自增约束(aoto_increment),下面是添加、删除这几种约束的一些方法。
--我已经建了数据库; 1 -- 添加约束
2 -- 1、建表时添加约束: 3 create table goodstest ( 4 gid int(10) not null auto_increment, 5 gname varchar(20) not null, 6 gprice float not null, 7 gnum int(10) not null, 8 primary key (gid), 9 unique key (gname), 10 foreign key (col_name) references tab_name(col_name) 11 ); 12 13 14 -- 2、通过alter语句添加约束 15 -- 主键约束 16 -- 语法:alter table tab_name add [constraint [symbol]] primary key [index_type] (key_part,...) [index_option] 17 alter table goodstest add primary key(gid); 18 -- 语法:alter table tab_name modify [column] col_name column_definition [first | after col_name]/* 可以更改列定义但不能更改其名称,在不重命名列定义的情况下更改列定义比change更方便。*/ 19 -- 通过修改列定义添加或者添加主键,修改约束一般是先删掉原有的后重新添加 20 alter table goodstest modify gid int(10) primary key; 21 -- 语法:alter table tab_name change [column] old_col_name new_col_name column_definition [firet | after col_name] /*原始定义中存在但未为新定义指定的属性不会继续使用。即以新定义为准*/ 22 alter table goodstest change gid gid int(10) primary key;/* 当不需要重命名时两个相同的列名是必要的*/ 23 24 25 -- 唯一性约束 26 -- 语法:alter table tab_name add [constraint [symbol]] unique [index|key] [index_name] [index_type] (key_part,...) [index_option] ... 27 alter table goodstest add constraint gname_uni unique key(gname);/*如果没有用constraint设置约束名 系统会自动生成*/ 28 -- 同理可用modify column及change column方法添加
29 -- 外键约束 30 -- 语法:alter table tab_name add [constraint [symbol]] foreign key [index_name] (col_name,...) reference_definition 31 alter table gsales add foreign key(gid) references goods(gid); 32 33 -- 默认约束 34 -- 语法:alter table goodstest alter [column] col_name {set default literal | drop default}/*删除以及设置*/ 35 36 37 -- 非空约束以及自增约束:在定义时设置,或者通过modify column 和 changge column设置及删除 38 -- 一张表只能有一个自增长列,并且该列必须定义了约束(可以是主键约束,也可以是唯一约束,也可以是外键约束,但是不可以是非空和检查约束) 39 40 41 -- 删除约束 42 43 -- 语法:alter table tab_name drop primary key;/*主键是唯一的就这样就行了*/ 44 -- 语法:alter table tab_name drop [index | key] index_name /*删除唯一性约束*/ 45 -- 语法:alter table tab_name drop foreign key fk_name/*删除外键约束*/
参考:
参考: