将指定数据库 dbname 中 所有表 Engine 改为 InnonDB 类型
DELIMITER //
DROP PROCEDURE IF EXISTS transferTableEngine//
CREATE PROCEDURE transferTableEngine (IN dbName VARCHAR(100))
READS SQL DATA
BEGIN
DECLARE isEnd BOOL DEFAULT 0;
DECLARE tmpTableName VARCHAR(255) DEFAULT NULL;
DECLARE cur CURSOR FOR SELECT ts.TABLE_NAME FROM information_schema.TABLES AS ts WHERE ts.TABLE_SCHEMA LIKE dbName;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET isEnd=1;
OPEN cur;
REPEAT
FETCH cur INTO tmpTableName;
SET @tmpStmt=CONCAT('ALTER TABLE `', dbName, '`.`', tmpTableName, '` ENGINE=INNODB');
PREPARE stmt FROM @tmpStmt;
EXECUTE stmt;
UNTIL isEnd
END REPEAT;
CLOSE cur;
END;
//
DELIMITER ;
使用 以下代码调用
CALL transferTableEngine('dbname');
分享到:
相关推荐
通过`SHOW ENGINE INNODB STATUS`可以查看死锁详情。 解决这种问题的一种方法是调整事务的隔离级别。MySQL默认的隔离级别是可重复读(REPEATABLE-READ),而Oracle默认为已提交读(READ-COMMITTED)。在可重复读...
1. 利用`SHOW ENGINE INNODB STATUS`命令来检查死锁原因,或者在调试阶段开启`innodb_print_all_deadlocks`收集死锁日志。 2. 尽量避免使用`LOCK TABLES`,而是使用事务来管理操作。 3. 避免长时间运行的事务,确保...
- `ALTER TABLE table_name ENGINE=InnoDB;`:更改表的存储引擎。 - `CREATE TABLE table_name... ENGINE=InnoDB;`:在创建表时指定存储引擎。 举例来说,你可以通过以下命令查看当前时间、登录用户和MySQL版本: `...
- **创建读者表**:使用`CREATE TABLE reader (rid VARCHAR(12), rname VARCHAR(50), sex CHAR(1), typeno CHAR(1), dept VARCHAR(50), tel VARCHAR(50), PRIMARY KEY (rid)) ENGINE=InnoDB;` - **创建图书表**:...
default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8 ``` 配置环境变量 打开电脑设置,新建系统变量,变量名为 MYSQL_HOME,变量值为 D:\...
这需要编辑`my.cnf`配置文件,在`[mysqld]`部分添加`default-storage-engine=InnoDB`。同时,删除`ib_logfile0`和`ib_logfile1`以初始化InnoDB日志文件,然后重启MySQL。 开启MySQL的日志功能可以监控SQL执行情况。...
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON db_name.* TO 'git'@'localhost'; ``` - 设置存储引擎为 InnoDB: ```sql SET storage_engine=INNODB; ``` - 创建数据库...
- `default-storage-engine=INNODB`:设置默认存储引擎为InnoDB。 - `sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`:设置SQL模式。 - `[mysql]`部分: - `default-character-set=utf8`:设置MySQL...
default-storage-engine=INNODB 找到CMD命令提示符,右键以管理员身份运行 进入mysql子目录bin 依次输入:mysqld --install (安装) mysqld --initialize (初始化)net start mysql(运行) 3、设置MySql登录...
create table t1 (name varchar(10), age int) engine = innodb charset = utf8; ``` 4. **删除表** 删除`t1`表。 ```sql drop table t1; ``` 5. **重命名表** 将`t1`表重命名为`t2`。 ```sql rename...
) ENGINE=InnoDB; ``` 这里`AUTO_INCREMENT`用于自动递增主键,`NOT NULL`和`DEFAULT`分别设置列的约束和默认值。 - **读取(Retrieve)**: `SELECT`语句用于查询数据,如单表查询和多表联接查询。例如,单表查询...
- 创建表:`CREATE TABLE IF NOT EXISTS table_name (...) ENGINE=InnoDB DEFAULT CHARSET=gb2312;`,其中表结构定义在括号内,并指定了存储引擎和字符集。 - 修改表结构:`ALTER TABLE t1 RENAME TO t2;`,用于...
default-storage-engine=INNODB # 快速设置 MySQL 的密码 #skip-grant-tables ``` 2. **启动MySQL服务**: - 使用管理员权限打开命令提示符(CMD)。 - 进入MySQL的`bin`目录,执行`mysqld install`以安装MySQL...
default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8 ``` 5. **安装MySQL服务**: 以管理员身份运行命令提示符,然后切换到MySQL的...
- `default-storage-engine=INNODB`: 默认存储引擎设置为 InnoDB。 - `sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`: SQL 模式设置,以提高数据的一致性和安全性。 2. **客户端设置**: - `[mysql]`: ...
- 运行 `ALTER TABLE XXX ENGINE = InnoDB;` - **方法二** - 同上使用`mysqldump`方法。 - **注意事项** - 第一种方法可能会导致表锁定,请确保在低峰时段执行。 #### 四、MySQL版本更新注意事项 **1. ...
ENGINE=InnoDB;`,常见的引擎有 InnoDB(支持事务处理),MyISAM(读写速度快)等。 - **查看存储引擎**:`SHOW ENGINES;` 显示所有支持的引擎,`SHOW VARIABLES LIKE 'storage_engine';` 查看默认引擎。 6. **...
方法二:`ALTER TABLE table_name ENGINE=engine_name` `ALTER TABLE` 命令可以用来改变表的存储引擎,同时也可以作为一个释放空间的手段。当你将表从一个引擎转换到另一个,比如从MyISAM转到InnoDB,MySQL会创建一...