2024年3月27日

MySQL: MySQL删除数据库中所有的表

MySQL如何删除数据库中所有的表 需求: 方法1(他人之见) 方法2(常用) 方法3(最方便): 方法4(鄙人之见): 1.行转列的查询 2 复制查询出的数据 3. 使用Navicat、idea 等数据库软件 4. 执行sql 5. 可能出现的问题: 6.总结 需求: 删除数据库所有表,此处数据库为 activiti_db。 方法1(他人之见) SELECT concat('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema = 'mydb'; mydb换成你想删除的数据库的名字 这样可以生成一个批量处理的sql语句,你需要再运行一次这个结果集 就可以删除所有的表而不删除数据库了 例如: ①新建查询: ②返回的结果集,复制出来再运行一次。(复制,可以shift…
2024年3月10日

MySQL: MySQL计算字段长度/大小函数的对比 (length / bit_length / char_length)

适用于MySQL 5.6及以上 注意: char_length、length、bit_length函数只是用于计算字符串数据的长度。 CHAR和VARCHAR实际存储开销比数据要大,详情参见《MySQL中VARCHAR最大长度是多少?CHAR和VARCHAR有哪些区别?》 非字符串类型,在《MySQL所有类型的字段长度、取值范围、存储开销(区分显示宽度/有无符号)》中有详细拆解。 如需评估数据库/表/行的存储开销,可以参考《MySQL如何评估数据量(行大小、数据存储和索引存储)》 定义 char_length、length、bit_length都是MySQL内置的字符串函数,用于计算字符串的长度1。 非字符串会先转为字符串,再执行长度计算 char_length与CHARACTER_LENGTH函数作用相同 区别 三个函数计算的单位不…
2024年2月10日

MySQL: MySQL设置动态的创建时间(create_time)和修改时间(update_time)

我这里用的是Navicat,直接在字段属性修改 这个适用于5.7及更高版本,5.7之前的版本会出现问题~~ 当前时间戳:CURRENT_TIMESTAMP 一般情况下,创建时间、修改时间都是用datetime类型; datetime类型在没有默认值的情况下是不会自动赋值的; 在开发阶段,不想传这两个值,但又想不为null,所以就需要用到CURRENT_TIMESTAMP这个参数。 创建时间: 一般是在创建数据时才会赋值,使用SQL的话,就需要在字段上添加默认值: DEFAULT CURRENT_TIMESTAMP(0) 使用Navicat的情况下,就需要添加CURRENT_TIMESTAMP为默认值。 修改时间: 一般是在创建数据、修改数据时才会赋值,使用SQL的话,就需要在字段上添加默认值: DEFAULT CURRENT_TIMEST…
2024年1月15日

MySQL: MySQL查询报错 Error: #1060 列名重复 'id' Error: 1060 Duplicate column name 'id'

1. 问题概述: 为了便于演示,创建表 contacts,并向其中插入一些样本数据: CREATE TABLE IF NOT EXISTS `contacts` ( `id` int(11) PRIMARY KEY AUTO_INCREMENT NOT NULL, `first_name` varchar(50) NOT NULL, `last_name` varchar(50) NOT NULL, `email` varchar(255) NOT NULL ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `contacts` (`id`, `first_name`, `last_name`, `email`) VALUES (1, 'Carine ', 'Schmitt', 'carine.schmitt@veriz…
2024年1月12日

MySQL: MySQL中的COLLATE详解

MySQL COLLATE是校对集的意思,可以理解为,排序规则等,下面详细介绍关于MySQL中COLLATE 前言 在MySQL中执行show create table 指令,可以看到一张表的建表语句,example如下: CREATE TABLE `table1` (     `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,     `field1` text COLLATE utf8_unicode_ci NOT NULL COMMENT '字段1',     `field2` varchar(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '字段2',     PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=u…