美文网首页
Mysql 约束的新增和删除

Mysql 约束的新增和删除

作者: 朤长弓 | 来源:发表于2020-02-23 12:11 被阅读0次

<p>1.普通索引。</p><p/><p>这是最基本的索引,它没有任何限制。它有以下几种创建方式:</p><p/><p>(1)创建索引:create index indexname on tablename(tablecolumns(length));如果是char,varchar类型,length可以小于字段实际长度;如果是blob 和 text 类型,必须指定length,下同。</p><p/><p>(2)修改表结构:alter tablename add index [indexname] on (tablecolumns(length)) </p><p/><p>(3)创建表的时候直接指定:create table tablename ( [...], index [indexname] (tablecolumns(length)) ;</p><p/><p>2.唯一索引。</p><p/><p>它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:</p><p/><p>(1)创建索引:create unique index indexname on tablename(tablecolumns(length))</p><p/><p>(2)修改表结构:alter tablename add unique [indexname] on (tablecolumns(length))</p><p/><p>(3)创建表的时候直接指定:create table tablename ( [...], unique [indexname] (tablecolumns(length)) </p><p/><p> </p>


<p/><p>查看索引  show index from 数据库表名</p><p/><p>alter table 表名 add index 索引名称(数据库字段名称)</p><p/><p>primary key(主键索引)</p><p/><p>alter table table_name add primary key ( column )</p><p/><p>unique(唯一索引)</p><p/><p>alter table table_name add unique (column)</p><p/><p>index(普通索引)</p><p/><p>alter table table_name add index index_name ( column )</p><p/><p>fulltext(全文索引)</p><p/><p>alter table table_name add fulltext ( col)</p><p/><p>多列索引</p><p/><p>alter table table_name add index index_name ( column1, column2 )</p><p/><p>-- 创建约束</p><p/><p>alter table table_name add unique(col);</p><p/><p>默认该约束的名称等于该列的名称,但是如果修改了这列的名称,而约束的名称确是不会改变的,这样在修改的时候容易引起问题,最好的方法是查看该表的约束再进行操作。</p><p/><p>alter table table_name add constraint index_name2 unique(col);</p><p/><p>create unique index index_name2 on table_name(col);</p><p/><p> -- 删除没有显式命名的约束</p><p/><p>show index from table_name; --查看 key_name 。如key_name 是 index_name</p><p/><p>alter table table_name drop index index_name; -- 隐式</p><p/><p>-- 删除带显式命名的约束</p><p/><p>alter table table_name drop index index_name2; -- 显式</p>
<p/><p>alter table table_name drop primary key; 直接就可以删除该表中的主键</p><p/><p>show keys from table_name;</p><p/><p>alter table table_name add constraint forkey_name foreign key (col) references table_name2(col); </p><p/><p>或:</p><p/><p>alter table table_name add foreign key (col) references table_name2(col); </p><p/><p>(需要通过 show create table table_name)来查看外键名称</p><p/><p>如果table_name2上没有主键约束和唯一性约束的列是没有资格作为列建立外键约束,否则会报错:“error 1215 (hy000): cannot add foreign key constraint”</p><p/><p>alter table table_name2 add primary key (col);</p><p/><p>删除外键:</p><p/><p>首先查看外键名称:</p><p/><p>show create table table_name</p><p/><p>alter table table_name drop foreign key forkey_name; </p><p/><p> </p><p/><p>check约束</p><p/><p>建立约束alter table table_name add check(sex in ('男','女'));没有报错</p><p/><p>但是insert into table_name values("a"); 不会报错,这是因为mysql 对于check会进行解析,但check约束实际无效。而要实际实现check约束的功能一般使用enum类型或者触发器来实现。</p><p>
</p>

相关文章

  • Mysql 约束的新增和删除

    1.普通索引。 这是最基本的索引,它没有任何限制。它有以下几种创建方式: (1)创建索引:create i...

  • postgresql字段新增、删除、增删约束、字段和表重命名

    新增字段 删除字段 增加约束 删除约束 修改、删除默认值 修改数据类型 重命名字段 重命名表

  • mysql未知约束名删除约束

    问题:没有约束名称,如何删除约束?制定约束的时候,如果不指定约束名称,系统都会自己定义一个约束名称。1 可以通过下...

  • mysql 添加列,修改列,删除列

    【原文出处】MySQL 添加列,修改列,删除列 ALTER TABLE:添加,修改,删除表的列,约束等表的定义。查...

  • mysql 学习语句

    MySQL学习笔记 登录和退出MySQL服务器 基本语法 建表约束 主键约束 唯一主键 非空约束 默认约束 外键约...

  • 数据表修改

    添加单列 添加多列 删除列 添加主键约束 添加唯一约束 添加外键约束 添加/删除默认约束 删除主键约束 删除唯一约...

  • Mysql开启log-bin日志

    Mysql开启log-bin日志 一 、logbin日志 记录新增、更新、删除的sql 参考1[https://w...

  • mysql 级联删除,外键约束

    对表t_user和t_book外键关联。在t_book中设置外键,如图示。其中: RESTRICT:创建约束。删除...

  • 2019-4-30

    一、mysql删除外键约束 1、查看创建数据库的sql语句 show create table emp 2、查看外...

  • 设置外键,外键约束值的区别

    laravel 设置外键,并设置外键约束的方式 为联级删除 更新:在使用Navicat for mysql设计表时...

网友评论

      本文标题:Mysql 约束的新增和删除

      本文链接:https://www.haomeiwen.com/subject/sotjqhtx.html