欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入 在使用alter column mysql flush status; mysql alter table dictionary - alter column mean set default'default2'; query ok, 0 rowsaffected (0.03 sec) records: 0 duplicates: 0 warnings: 0
欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入
在使用alter column
mysql> flush status;
mysql> alter table dictionary
-> alter column mean set default'default2';
query ok, 0 rowsaffected (0.03 sec)
records: 0 duplicates: 0 warnings: 0
mysql> show statuswhere variable_name like 'handler%'
-> or variable_name like 'created%';
+----------------------------+-------+
| variable_name | value |
+----------------------------+-------+
|handler_read_rnd_next | 0 |
|handler_savepoint_rollback | 0 |
| handler_update | 0 |
| handler_write | 0 |
2 修改frm文件
通过修改frm文件的方式来提高修改表结构效率的步骤大概如下
1. 备份相关的数据库文件
2. 创建一张和旧表完全相同的表结构
mysql>create table dictionary_new like dictionary;
3. 执行flush tables with read lock. 所有的表都被关闭
mysql> alter table dictionary_new
-> modify column mean varchar(30)default 'defaulr#';
mysql> flush table with read lock;
5. 把dictionary_new.frm文件重名为dictionary.frm
6. 执行unlock tables
mysql> unlock tables;
mysql> insert into dictionary(word) values('random');
mysql> select * from dictionarywhere word='random';
从下面的结果可以看出,默认值已经被改掉,且不涉及到内容的改变
+--------+--------+----------+
| id | word | mean |
+--------+--------+----------+
| 110004 |random | defaulr# |
+--------+--------+----------+
7. drop dictionary_new
[1] [2]