美文网首页
mysql shell 删除数据库表的全部数据

mysql shell 删除数据库表的全部数据

作者: Manchangdx | 来源:发表于2018-04-04 01:01 被阅读0次

方法一 delete from <表名> :

# 此方法删除表内全部数据后,返回删除数据的数量
# 如果表内有自增字段,它的起始值保留当前数值
mysql> delete from course;
Query OK, 60 rows affected (0.02 sec)

方法二 truncate table <表名> :

# 如果表内有自增字段,它的起始值恢复为 1
# 删除速度比 delete 快
# 当表的主键有外键约束时,无法删除数据,会报类似下面的错误(delete 方法无此问题):
mysql> truncate table user;
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key ...

# 因为 course 类设置了外键约束
# 执行 show create table course\G 查看 course 表的全部信息
mysql> show create table course\G
*************************** 1. row ***************************
       Table: course
Create Table: CREATE TABLE `course` (
  `create_at` datetime DEFAULT NULL,
  `update_at` datetime DEFAULT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `author_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ix_course_name` (`name`),
  KEY `author_id` (`author_id`),
  CONSTRAINT `course_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `user` (`id`) 
  ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

# 执行此命令删除 course 表的外键约束
mysql> alter table course drop foreign key course_ibfk_1;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

# 然后就可以用 truncate 删除 user 表的全部数据了
mysql> truncate table user;
Query OK, 0 rows affected (0.00 sec)

# 最后执行此命令重新设置外键即可
mysql> alter table course add constraint foreign key course(author_id) references 
user(id);
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

相关文章

  • Mysql学习——数据库基础操作(1)

    Mysql创建数据库Mysql删除数据库Mysql创建表Mysql删除表Mysql添加表数据Mysql修改表数据M...

  • MySQL学习

    MySQL常用命令 连接数据库 创建/删除数据库 使用数据库 创建/删除表 查看表结构/查看全部数据库/查看一个数...

  • mysql shell 删除数据库表的全部数据

    方法一 delete from <表名> : 方法二 truncate table <表名> :

  • mysql学习笔记

    数据库和表 进入mysql:mysql -uroot -p 查看数据库:show databases; 删除数据库...

  • MySQL

    创建数据库 使用数据库 直接删除数据库 建表 删除整表 显示表 表的详细描述 显示当前mysql版本、当前日期、用...

  • 数据库中的简单操作

    1.0 删除数据库中的某个数据库 2.0 删除数据库中的某个表 3.0 删除数据库中的表全部的内容 4.0 删除数...

  • mysql常用命令

    mysql常用命令 查看已有数据库 创建数据库 选择数据库 删除数据库 查看数据库已有表 创建数据表 显示表结构 ...

  • MySQL 锁表

    Linux System Environment MySQL锁表简介 MySQL锁表是禁止用户在数据库增加/删除/...

  • mysql删除表备忘

    mysql删除数据表有以下几种情况 1. drop table table_name   删除表全部数据和表结构,...

  • 从0到1学习网络安全 【MySQL基础-MySQL 创建数据库】

    MySQL 创建数据库 数据库存有一个或多个表。 你需要 CREATE 权限来创建或删除 MySQL 数据库。 使...

网友评论

      本文标题:mysql shell 删除数据库表的全部数据

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