Not null之所以丢失是因为alter modify中定义的内容是被覆盖修改的,比如你这次没有not null就不会被定义下去……
没有办法,如果你是通过两次 ALTER table user MODIFY username char(16) NOT NULL UNIQUE; 来实现,则实际上创建了两次 unique的约束。你可以一次性show table 列出表名,然后通过EXCEL生成 drop index `username_2` on user; ,然后一次性贴入MYSQL执行。 也可以通过 select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where ... 得到所有相关约束名。然后进行EXCEL处理删除。
我的引擎好像是MyISAM的……不是说InnoDB的执行速度比MyISAM慢一些么?
我的引擎好像是MyISAM的……不是说InnoDB的执行速度比MyISAM慢一些么?
先插个数据确认一下,是不是加了unique以后,not null丢失(理论上不应该,这两个并没有什么关联)
两种引擎都有各自的优缺点,就像寸有所长尺有所短,快慢不是绝对的,要看场合
也可以通过 select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where ... 得到所有相关约束名。然后进行EXCEL处理删除。