mysql - alter語句
阿新 • • 發佈:2020-09-15
select version(); -- 5.7.31-log -- mysql - alter的運用 use mysql_study; drop table if exists `test_alter`; create table if not exists `test_alter` ( `id` int unsigned auto_increment, `name` varchar(50), `pwd` char(48), `add_time` date, primary key(`id`) )engine = innodb default charset=utf8; show columns from `test_alter`; -- 新增欄位 alter table `test_alter` add `test` tinyint; show columns from `test_alter`; -- 刪除欄位 alter table `test_alter` drop `test`; show columns from `test_alter`; -- 新增欄位並位於第一列或者某一列之後 alter table `test_alter` add `field_one` int first; show columns from `test_alter`; alter table `test_alter` add `after_pwd` tinyint after `pwd`; show columns from `test_alter`; -- 調整欄位的順序 alter table `test_alter` modify `name` varchar(50) first; show columns from `test_alter`; alter table `test_alter` modify `name` varchar(50) after `id`; show columns from `test_alter`; -- 修改儲存引擎 alter table `test_alter` engine = innodb; show table status like 'test%'; -- 刪除外來鍵關係 #alter table `test_alter` drop foreign key keyName; -- 修改欄位型別 modify alter table `test_alter` modify `pwd` varchar(50); show columns from `test_alter`; -- 修改欄位型別 change alter table `test_alter` change `pwd` `pwd` varchar(48); show columns from `test_alter`; alter table `test_alter` change `pwd` `old_pwd` char(48); show columns from `test_alter`; insert into `test_alter`(`name`) values('張三'); delete from `test_alter`; update `test_alter` set add_time = now(); select * from `test_alter`; -- alter 對null值和預設值的影響 alter table `test_alter` modify `add_time` date not null; #在有資料的情況下不能修改為非空,可以將null的資料預設指定值 -- 所以在MYSQL中,如果想要插入時自動獲取當前時間,則需要使用timestamp型別,然後賦預設值就可以了。 alter table `test_alter` alter column `old_pwd` set default '123456'; show columns from `test_alter`; select * from `test_alter`; -- 刪除預設值 alter table `test_alter` alter `old_pwd` drop default; show columns from `test_alter`; -- 修改表名 alter table `test_alter` rename to `test_alter1`; alter table `test_alter1` rename to `test_alter`;